Cześć, bawię się trochę w winformsach i mam pewien problem, ale najpierw nakreślę sytuację.
W form1 jest comboBox którego wartościami są nazwy plików z pewnego folderu. W tej samej formie jest button który otwiera nową formę form2.
W form2 jest textBox do którego wpisujemy nazwę oraz button który tworzy plik o danej nazwie. Po udanym stworzeniu pliku form2 się zamyka, ale zanim to się stanie chciałbym wywołać metodę refreshComboBox która jest w form1.
Znalazłem takie rozwiązanie Application.OpenForms.OfType<Form1>().Single().refreshComboBox(); Natomiast nie wiem na ile jest ono poprawne i czy faktycznie powinno się/można tak to robić.
Ktoś może to ocenić oraz podrzucić inne rozwiązanie? :)
wywołanie metody z innej formy
- Rejestracja: dni
- Ostatnio: dni
- Postów: 38
0
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
1
- Łatwe i niezbyt skalujące się: przekazujesz referencję do Form1 w konstruktorze Form2, dzięki czemu dowolna metoda w Form2 może wywoływać publiczne metody Form1.
- Trudniejsze, ale bardziej skalujące się i eleganckie, zapewniające separację między widokami, nawigacją i operacjami na danych - implementacja Model View Prezenter albo jakiegoś innego wzorca warstwy prezentacji.
- Rejestracja: dni
- Ostatnio: dni
1
Raczej należałoby zrobić przez własny event i event handler, tak jak są zrobione eventy istniejące.