Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Jak sie z poziomu jednego formularza odwołać do obiektów z innego formularza?
youngi




Typ: neutral
Postów: 10
Zarejestrowany: Apr 2004
Jak sie z poziomu jednego formularza odwołać do obiektów z innego formularza?

Czesc

Przeszukuje rozne tutoriale i ksiazki ktore mam ale nie moge znalezc rozwiazania.
Mam programik, 2 formularze i z poziomu jednego z nich chce zmienic pewne ustawienia niektorym obiektom znajdujacym sie na innym formularzu

za nic mi nie wychodzi ;(
probowalem nazwaformularza.obiekt.wlasciwosc= xxx ale nie daje sie w ten sposob

uzywam visual basica z pakietu visual studio
pozdrawiam i prosze o podpowiedz
z gory dziekuje i sorki za pewnie lamerskie pytanko


_____________________________________________
witam
interesuje sie programowaniem
niestety, do tej pory siedzialem w programach dla dos i wlasnie sie ucze programowania dla windows
z tego powodu prosze o wyrozumialosc jesli puszcze pytanko z serii lamerskich

18-04-2004 14:30
Pokaż profil youngi  Wyślij email do youngi        885981
ogis




Typ: neutral
Postów: 9
Zarejestrowany: May 2004

dim frm as new Form2
frm.show
frm.text="Nowy formularz 2"
frm.jakaśkontrolka.text="blablabla"

01-05-2004 21:02
Pokaż profil ogis  Wyślij email do ogis   
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004


dim frm as new Form2
frm.show
frm.text="Nowy formularz 2"
frm.jakaśkontrolka.text="blablabla"

-----------------------
No i super to może jeszcze podpowiesz jak z poziomu tego drugiego formularza przekazać wartości do pierwszego formularza z którego został otwarty drugi formularz np: wpisując w textboxie w drugiego formularza jakiś tekst, po naciśnięciu przycisku żeby ten tekst pokazał się w textbox w pierwszym formularzu

[Post edytowany dnia 09-05-2004 07:11 przez Piotr T]


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

09-05-2004 07:03
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
ogis




Typ: neutral
Postów: 9
Zarejestrowany: May 2004

Aby to zrobić aplikacja musi miec dwie formy najlepiej z buttonami i moduł z procedurą main(). W opcjach projektu trzeba wbić, że StartUp Object to jest "sub main".

Moduł:


Module Module1
    Public frm1 As New Form1()
    Public frm2 As New Form2()
    Sub Main()
        Application.Run(frm1)
    End Sub
End Module


Do kodu formularza 1 możemy wpisać:


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        frm2.Show()
        frm2.Button1.Text = "ooops"
    End Sub


A do kodu drugiej formy:


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        frm1.Button1.Text = "blablabla"
    End Sub


Dla osób, które bawiły się Delphi to jest bardzo znajomy przykład (tak się robi splash screeny i w Delphi i w VB ).
Aby obie formy komunikowały się ze sobą muszą zostać zdefiniowane jako nowe publiczne formy:
Public nForm1 as new Form1
Public nForm2 as new Form2
Jeżeli ustawimy jedną z form jako obiekt StartUp to dla nowej potomnej formy będzie ona "Private" i nie będzie widoczna jako obiekt, który można modyfikować (komunikować się z nim).
Czyli:
formy komunikują się ze sobą jeżeli z poziomu kodu są wywołane jako nowe publiczne obiekty. A Forma która jest generowana przez IDE jako obiekt StartUp jest obiektem prywatnym, niewidocznym w innych modułach i klasach.

09-05-2004 11:53
Pokaż profil ogis  Wyślij email do ogis   
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

Dzięki - jutro to wypróbuję - uff... ciężko się jest pozbyć nawyków wypracowanych przez lata, a czy próbowałeś to robić z drugą formą modalną:
'--- uruchomienie modalnej formatki

Dim F as New Form1()
F.ShowDialog()
-------
i z tej formy przekazać argumenty do głównej formy za pomocą buttona do Texboxa w formatce pierwszej


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

09-05-2004 13:56
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
ogis




Typ: neutral
Postów: 9
Zarejestrowany: May 2004

To akurat nie ma znaczenie czy druga forma jest Modalna (Dialogowa) - pracujesz z dwoma obiektami, które muszą być Public - czyli jak chcesz zrobić formę Modalną z np. wskaźnikiem postępu - to albo ParentForm musi być obiektem Public bo forma Modalna nie będzie wiedzieć gdzie zwrócić informację, albo przejdziesz na Messages (komunikaty systemowe) ale to dopiero bedzie skomplikowane.

09-05-2004 14:19
Pokaż profil ogis  Wyślij email do ogis   
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

ogis Wielkie Dzięki - sprawdziłem z przekazywaniem tych argumentów do różnych formatek i wszystko działa


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

10-05-2004 10:51
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
youngi




Typ: neutral
Postów: 10
Zarejestrowany: Apr 2004

poniewaz zaczynam z vb.net to chcialbym uzyskac od Was jakas porade abym na starcie od razu nie robil bledow

chce miec na formie datagrid'a oraz przyciski dodaj, edytuj i usun rekord.
pierwsze dwa z tych przyciskow chcialbym aby uruchamialy nowe formy gdzie na jednej mozna by wpisac nowe dane, na drugiej edytowac, a po kliknieciu dopisz lub zapisz zmiany dopisac do bazy i grida (jak rozumiem jednoczesnie) oraz zamknac formularz i wrocic do poprzedniego z gridem

problem sie teraz rozpoczyna bo na formie z gridem mam dataadaptera, dbconnection i dataseta
nie chcialbym po raz kolejny po kliknieciu dopisz rekord na nowej formie doczytywac danych z bazy i tworzyc kolejnego dataseta itd, bo to chyba nie za eleganckie a odwolac sie do tych z poprzedniej formy
i czy tutaj powinienem rowniez zadeklarowac obie formy jako publiczne i dzieki temu odwolywac sie do elementow poprzedniego formularza?
a co w wypadku wiekszych aplikacji ?
bedzie dosc sporo wtedy tych publicznych formularzy
nie przeszkadza to programowi ?

napiszcie prosze swoje sugestie i jak waszym zdaniem najlepiej zachowac sie w takim wypadku

pozdrawiam


_____________________________________________
witam
interesuje sie programowaniem
niestety, do tej pory siedzialem w programach dla dos i wlasnie sie ucze programowania dla windows
z tego powodu prosze o wyrozumialosc jesli puszcze pytanko z serii lamerskich

08-03-2005 01:36
Pokaż profil youngi  Wyślij email do youngi        885981
Wszystkich odpowiedzi: 7 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1