View Full Version : duvida de variaveis


tahir
09-10-2007, 16:09
olá a todos ....
eu estou a entrar em colapso a dar em maluquinho ou não sei bem.....

tenho um problema que é extremamente simples mas não consigo resolver: qual a maneira de usar variaveis de um form noutro form?

imaginemos tenho o from1 com o código:

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ola As String
ola = "ola como estas"

End Sub
End Class


e no form2 quero chamar a variavel ola para a fazer aparecer num message box...do tipo:

Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
messagebox.show (My.Forms.Form1.ola)

End Sub
End Class


o problema é que me aparece esta mensagem de erro 'ola' is not a member of 'WindowsApplication1.Form1'.

eu acho que já consegui fazer isto em outros projectos de teste...não sei o que se está a passar, tou a fazer algo mal concerteza, não consigo é perceber o quê.....

alguem me pode ajudar? e explicar como fazer para chamar uma variavel de um form para o outro?

é uma dúvia estupida eu sei...ma há dias assimmm

abraço e desde já obrigado.
PS: estou a usar o visual basic 2005 express

Khrono
10-10-2007, 12:02
Boas,

pelo que eu percebi penso o problema está na definição da variavel ola por esta estar definida dentro de uma função e ser local... experimenta da seguinte forma:


Public Class Form1

Public ola as string

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ola = "ola como estas"

End Sub
End Class

Penso que assim conseguirás fazer o que pretendes

Cumprimentos,

Khrono

Ш¡zard·σf·Шαr
10-10-2007, 13:57
A variável tem que ser declarada como global (fora de qualquer procedimento) e como pública, para poder ser acedida por outras classes dentro do mesmo projecto. Vê o exemplo do Khrono. ;)

tahir
10-10-2007, 18:39
isto realmente....às vezes é nos pormenores que está tda a diferença....nunca tinha reparado que dava para criar uma variavel como public, pensei que o método para criar variável era sempre:
dim 'variavel' as ''instrução".....

pois experimentei com a sugestão do khrono e bingo já deu.....

um abraço e obrigado pela ajuda...isto realmente quem sabe, sabe

Abraço

pimpz
10-10-2007, 19:02
eu aconcelho-te a criar um modulo e meteres la as variaveis comuns aos dois forms.