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

VB.net | Aceder a váriaveis de outro form

Discussão em 'Programação' iniciada por diog0silva, 1 de Abril de 2009. (Respostas: 5; Visualizações: 2469)

  1. diog0silva

    diog0silva Power Member

    Boas.

    Eu tenho dois forms. Num deles, logo no inicio declaro a variavel x como string. Algures dentro de um metodo desse form (método abc), mudo o valor à variavel x.

    Depois, quando acedo à variavel x de um outro form (Form1.x), o valor da variavel é o valor inicial (" ") e não o seu valor depois de executado o método abc.

    Alguma ideia de como aceder à variavel x, com o valor que fica depois do método abc? Tanto a variavel x como o método abc estão como Public.
     
  2. ribeiro55

    ribeiro55 Power Member

    O que estás a fazer no que toca à "instanciação" dos forms?

    O valor "voltar" ao inicial indica que não estás a aceder à mesma instância, e para além disso, todas as variáveis deveriam ser PRIVATE e a sua exposição feita através de propriedades.
     
  3. diog0silva

    diog0silva Power Member

    Agora já consegui. Tenho mais ou menos assim:

    Código:
    [COLOR=white][SIZE=2][SIZE=2]Public[/SIZE][/SIZE][SIZE=2][SIZE=2]Class[/SIZE][/SIZE][SIZE=2] Form1[/SIZE][/COLOR]
     
    [COLOR=white][SIZE=2][SIZE=2]Public[/SIZE][/SIZE][SIZE=2] x [/SIZE][SIZE=2][SIZE=2]As [/SIZE][/SIZE][/COLOR][SIZE=2][SIZE=2][COLOR=white]String[/COLOR][/SIZE]
    [/SIZE][COLOR=white][SIZE=2][SIZE=2]Public[/SIZE][/SIZE][SIZE=2] y [/SIZE][SIZE=2][SIZE=2]As [/SIZE][/SIZE][SIZE=2][SIZE=2]String[/SIZE][/SIZE][/COLOR]
     
    [COLOR=white][SIZE=2][SIZE=2]Public[/SIZE][/SIZE][SIZE=2][SIZE=2]Sub[/SIZE][/SIZE][SIZE=2] Button1_Click([/SIZE][SIZE=2][SIZE=2]ByVal[/SIZE][/SIZE][SIZE=2] sender [/SIZE][SIZE=2][SIZE=2]As[/SIZE][/SIZE][SIZE=2] System.Object, [/SIZE][SIZE=2][SIZE=2]ByVal[/SIZE][/SIZE][SIZE=2] e [/SIZE][SIZE=2][SIZE=2]As[/SIZE][/SIZE][SIZE=2] System.EventArgs) [/SIZE][SIZE=2][SIZE=2]Handles[/SIZE][/SIZE][SIZE=2] btnProcura.Click[/SIZE][/COLOR]
     
    [SIZE=2][SIZE=2][COLOR=white]x = 5[/COLOR][/SIZE][/SIZE]
    [SIZE=2][SIZE=2][COLOR=white]y = 6[/COLOR][/SIZE][/SIZE]
     
    [COLOR=white]Form2.Show()[/COLOR]
    [COLOR=white]Me.Close()[/COLOR]
     
    [SIZE=2][SIZE=2][COLOR=white]End Sub[/COLOR][/SIZE][/SIZE]
     
    [COLOR=white]End Class[/COLOR]
     
    [SIZE=2][SIZE=2][COLOR=white]-----[/COLOR][/SIZE][/SIZE]
     
    [SIZE=2][SIZE=2][COLOR=white]Public Class Form2[/COLOR][/SIZE][/SIZE]
     
    [SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][COLOR=white][SIZE=2][SIZE=2]Private[/SIZE][/SIZE][SIZE=2][SIZE=2]Sub[/SIZE][/SIZE][SIZE=2] Form2_Load([/SIZE][SIZE=2][SIZE=2]ByVal[/SIZE][/SIZE][SIZE=2] sender [/SIZE][SIZE=2][SIZE=2]As[/SIZE][/SIZE][SIZE=2][SIZE=2]Object[/SIZE][/SIZE][SIZE=2], [/SIZE][SIZE=2][SIZE=2]ByVal[/SIZE][/SIZE][SIZE=2] e [/SIZE][SIZE=2][SIZE=2]As[/SIZE][/SIZE][SIZE=2] System.EventArgs) [/SIZE][SIZE=2][SIZE=2]Handles[/SIZE][/SIZE][SIZE=2][SIZE=2]Me[/SIZE][/SIZE][SIZE=2].Load[/SIZE][/COLOR]
     
    [SIZE=2][COLOR=white]TextBox1.Text = x[/COLOR][/SIZE]
    [SIZE=2][COLOR=white]TextBox2.Text = y[/COLOR][/SIZE]
     
    [SIZE=2][COLOR=white]End Sub[/COLOR][/SIZE]
     
    [COLOR=white]End Class[/COLOR]
    [/COLOR][/SIZE][/COLOR][/SIZE]
    Ele assim está a dar, mas não sei se tou a fazer como deve ser lol
     
    Última edição: 2 de Abril de 2009
  4. Thorak

    Thorak Power Member

    Normalmente convem criar uma classe geral com todas as variáveis globais.

    Assim sabemos sempre onde as encontrar
     
  5. No teu código meti a Bold e Sublinhado a azul o que penso que esteja mal.
    A minha sugestão é a seguinte, troca o que eu te sublinhei por isto:

    Textbox1.Text = NomeDoProjecto.Form1.x
    Textbox2.Text = NomeDoProjecto.Form1.y


    Troca NomedoProjecto pelo nome que deste ao projecto quando o criaste.

    Espero que ajude!

    Cumps
     
  6. jpaulino

    jpaulino Power Member

Partilhar esta Página