Sinovac, imas zaista mnogo mogucih resenja. Upamti da su forme objekti kao i sve ostalo (dobro, skoro sve:).
Posto vidim da cesto govoris o VB6, evo ti jedno resenje u tom smislu -nesto sto podseca na PUBLIC (global) promenjive u VB6.
Dakle mi cemo imati neke public promenjive koje ce pokazivati na razne objekte (npr nase dve forme).
Recimo da imas 2 forme u projektu MyForm1 i MyForm2.
U prvoj formi imas definisano dataset sa FRIEND scope (!!).
Znaci, negde u telu klase MyForm1 si deklarisao dataset pomocu:
Code:
FRIEND MyDataSet As Dataset = New DataSet()
Dataset moras da definises kao minimalno FRIEND jer inace nista od vidljivosti u drugoj formi.
Idemo sad, dodaj jedan modul u projekt i u njemu:
Code:
Module Common
Public Class PubVars
Public Shared pvForma1 As MyForm1
Public Shared pvForma2 As MyForm2
End Class
End Module
E to je nasa klasa PubVars koja ce drzati reference na nase objekte. Bile gde mi cemo moci da pristupamo objektima kad ih jednom referenciramo.
Polja u klasi su Public (to ti je jasno) i SHARED - mozemo da im pristupamo a da nismo instancirali klasu sa onim Dim xyz as new pubvars().
Negdje u kodu prve forme (myForm1) odradi kod (moze u Load event prve forme):
Code:
PubVars.pvForma1 = Me
Sad znaci imamo uvek pokazivac na prvu formu (PubVars.pvForma1)
Kada 'odradjujes' drugu formu sa onim npr.
Dim f2 as MyForm2 = New MyForm2
f2.ShowDialog
mozes ovo da izmenis tako da:
Code:
Dim f2 as MyForm2 = New MyForm2
PubVars.pvForma2 = f2
f2.ShowDialog
Dakle sad imamo i globalnu referencu na drugu formu.
Gotov posao. :)
Kako ces sad da pristupis datasetu (ili textboxu ili...) iz druge forme?
Jednostavno u drugoj mozes da imas npr:
Code:
datagrid1.datasource=PubVars.pvForma1.MyDataset.Tables(0)
ili iz druge forme hoces neki textbox da procitas (koji je na prvoj formi):
Code:
msgbox(pubvars.pvForm1.Textbox1.Text)
vredi i obrnuto, iz prve da kasnije pristupas kontrolama sa druge forme (koja mora da bude instancirana; odnosno da nije zatvorena), npr. negde u prvoj formi imas:
Dim TekstSaDruge as String = pubvars.pvForm2.Textbox1.Text
[
Ovu poruku je menjao degojs dana 21.07.2002 u 12:50 PM GMT]
Commercial-Free !!!