Okno opcji w windows forms

0

Czesc,

Mam do was prosbe, bo sam juz sie wypalilem w temacie. Mam jeden form (Form1), ktory zawiera wiele roznych parametrow. Po kliknieciu przycisku opcje otwiera sie nowy form (Form2), w ktorym uzytkownik ma mozliwosc zmieniac rozne parametry, tak aby po kliknieciu "ok" Form2 sie zamykal i w Form1 zachodzily zmiany.
Jedna dotad mi znana metoda jest najczesciej spotykane tworzenie nowego obiektu danej klasy w nowej klasie i przesylanie wartosci, ale wtedy te zmienione wartosci zapisuja sie w nowym obiekcie i nie modyfikuja juz tego istniejacego. W jaki sposob moge to ugryzc ?

1

pytanie czy form1 i form2 sa ciagle otwarte czy jeden sie zamyka a drugi otwiera

jezeli oba sa dostepne mozesz wyslac eventa i poprzez konkretny event zmienic wartosci

jezeli jeden jest tylko aktywny to stworz sobie obiekt zewnetrzny statyczny (cos na zasadzie Settings) z polami ktore chcesz zmienic i przy otwieraniu formy spisuj to co potrzebujesz

0

Okno Form2 sie zamyka. Faktycznie, poszukam rozwiazania w tym obszarze. Dzieki.

1

No to przecież zwykłe okno modalne, co za problem?

1

Sprawa jest banalna.

Załóżmy że masz klasę SettingsForm:

class SettingsForm : Form
{
   public MySettings Settings {get; set;}

   //tu reszta kodu ustawiająca Settings
}

Ma ona właściwość typu, którego używasz jako zbiór ustawień. Teraz w MainForm:

class MainForm
{
   // cała reszta kodu

   private MySettings PromptForSettings()
   {
     var settingsForm = new SettingsForm();
     settingsForm.ShowDialog(); //wykonanie tej funkcji czeka na zamknięcie okna SettingsForm
     return settingsForm.Settings; //masz swoje ustawienia w głównym oknie.
   }
}

Czy o coś takiego chodziło?

0

No to fest...
Jestem nowy w temacie i po prostu nie wiem o wielu możliwościach, a niestety czasami się nie trafia na odpowiednie rozwiązanie.

Moim problemem była nieznajomość okna modalnego, stąd też miałem problem z zaimplementowaniem tego kodu, żeby działał po zamknięciu okna. Pobawiłem się z wariantem z klasą statyczną, jak i po prostu z zwykłym przesyłaniem wartości między oknem modalnym i głównym Formem.
Dziękuje za pomoc.

Sarrus, a do Ciebie mam pytanie, czym jest u Ciebie MySettings w klasie SettingsForm. Twojego kodu nie umiałem zaimplementować...

0

To jest jakaś klasa lub struktura przechowująca dane z formy.

Ale powinno się to robić nieco inaczej. Tutaj pisałem komuś, kto miał podobny problem:
Zapisanie danych po zamknięciu "form'a"

0

Sarrus, a do Ciebie mam pytanie, czym jest u Ciebie MySettings w klasie SettingsForm. Twojego kodu nie umiałem zaimplementować...

MySettings to jest jakaś klasa do przechowywania danych. Wydaje się, że masz braki w programowaniu obiektowym. Powinieneś to uzupełnić.

0

No na pewno mam. Dzieki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1