Zasílání hodnot formuláři

Uvažujme následující situaci - máme dva formuláře, Form1 a Form2. na Formu1 je TextBox a tlačítko, které po kliku otevře Form2, na kterém chcete zobrazit hodnotu z TextBoxu na Formu1.

Jsou dvě možnosti, jak dostat hodnotu z TextBoxu na Form2. První je si vytvořit Public proměnnou v modulu, tu nastavit před otevřením Formu2 na hodnotu z TextBoxu a na Formu2 při Load si ji načíst. Poměrně jednoduchá věc, ale až do okamžiku, než zjistíte, že takovýchto hodnot potřebujete v celé aplikaci předat tuny. A tady nastává čas a místo pro Pro jednu z vynikajících věcí VB - totiž o možnost psaní vlastních vlastností pro objekty, tudíž i pro formuláře pomocí procedur Let() a Get().

Na formuláři Form2 můžeme zapsat například následující kód:

Private myVar as Variant

Public Property Get PassVar() As Variant

   
PassVar = myVar

End Property

Public Property Let PassVar(ByVal vNewValue As Variant)

   If IsNumeric(vNewValue) Then myVar = vNewValue
 
End Property

Typ procedur je Variant, můžete jej samozřejmě změnit podle Vašich požadavků, ale nezapomeňte, že obě musí být vždy stejného typu. Rovněž si všimněte, že u procedury Let je v kódu již zapracována podmínka, zda zasílaný parametr je číslo.

Na formuláři Form1 pak bude volání na události Click tlačítka vypadat následovně:

Private Sub Command1_Click()
   With Form2
     .PassVar = TextBox1.Text
     .Show
     Debug.Print .PassVar
   End With
End Sub

Zpět

Autor: The Bozena

iReklama.cz - nový reklamní systém
iReklama.cz - nový reklamní systém