1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB 2005 - MDI Forms

Discussão em 'Programação' iniciada por AlmaMater, 6 de Setembro de 2006. (Respostas: 4; Visualizações: 1961)

  1. AlmaMater

    AlmaMater Power Member

    Olá,

    Em VB 2005 criei um formulário MDI Parent e coloquei nele 1 Botão, label..etc, a situação é que ao abrir um Child Form o botão, label.. ficam vísiveis neste child form tb! alguem me diz qual a opção para desactivar isto? só quero que as coisas estejam visiveis no formulario parent! e não passem para os outros! mas ficam sobrepostos!

    Obrigado.
     
  2. Galbne_PT

    Galbne_PT Power Member

    Boas!

    Tb tive esse prob em c# 2005, penso k n seja possivel fazer isso, é k um MDI Form é mm só p gerir outros forms. mas posso estar completamente errado. :D

    Solução... dividi em menus, e pos as labels, text nas child form

    Epá, se alguem por acaso saber como fazer, tb subscrevo o pedido.

    Cumps,
     
  3. AlmaMater

    AlmaMater Power Member

    Ok, dá para contornar 1 pouco a situação:


    Qualquer controlo que seja criado no formulário Parent se estiver na área MDI não desaparece. Pode-se criar uma área específica para esses controlos (lado esquerdo p.ex.) e usar a restante área para abrir os formulários. Para isso acontecer basta adicionar p.ex. um "panel" e fazer a ancoragem (dock) desse controlo ao lado esquerdo.




    P.S. Agora que já sei isto é tentar alterar um controlo do Form1 Através do Form2 (ex. LABEL.TEXT), mesmo c/ recusro a um module onde estão definidos os forms a cena ainda n funciona..! keep trying..!
     
  4. Galbne_PT

    Galbne_PT Power Member

    Podes usar reflection, é simples e n precisas de passar a form como parametro!

    Ex: no child
    Código:
    MethodInfo theme = Owner.GetType().GetMethod("SetLabel");
    object[] obj = new object[1];
    obj[1] = "o k keres escrever na box"
    theme.Invoke(Owner,obj)
    Ex: no MDI
    Código:
    public void SetLabel(object obj)
    {
      label.text=obj.tostring();
    }
    Cumps,
     
  5. AlmaMater

    AlmaMater Power Member

    humm vou testar entao.. mas isso ta em C.. em VB deve ser algo como..

    Private theme As MethodInfo = Owner.GetType.GetMethod("SetLabel")
    Private obj As Object() = New Object(1)
    obj(1)="AAAAA"

    ..()


    Thnks
     

Partilhar esta Página