Resetowanie formy

0

Witam mam pytanie czy jest możliwość resetowania formy..

Mam formę z formularzem dodającym dane do bazy, na końcu kodu chciał bym żeby formularz został wyczyszczony.. oczywiście można textBox'y ustawić

textBox1.Text = "";

ale na formularzu mam też comboBox'y a ich pozycja się nie "zeruje".. strzeliło mi do łba że najprościej było by zresetować formę wtedy wszystkie ustawienia były by ustawione "na pozycji wejściowej"..

Jakieś rady, sugestie ?

1

Najbardziej "na chama" byłoby Application.Restart(), ale to resetuje całą aplikacje... Możesz spróbować wywołać InitializeComponent(), powinno pomóc.

0

Restart aplikacji na chama? To może od razu format C:? Formularz też zniknie wtedy.

  1. Klasa przechowująca dane, które wyświetlasz na swoim formularzu.
  2. Obiekt typu BindingSource, którego DataSource to Twoja klasa.
  3. Kontrolki formularza mają ustawione DataBindingi na odpowiednie właściwości BindingSource.
  4. Teraz możesz łatwo powiązać dane z kontrolek z obiektem Twojej klasy przypisując po prostu dataBindingCośtam.DataSource = obiektMojejKlasy.
  5. A żeby je wyzerować, to trzeba dać pusty obiekt, czyli dataBindingCośtam.DataSource = new MojaKlasa()
1

A nie wystarczy this.InitializeComponent()? Też wszystkie kontrolki są zapełniane domyślnymi wartościami... No, chyba że się mylę, to mnie poprawcie.

0

Ale InitializeComponent tworzy i dodaje kontrolki na formę, tak więc musiałbyś przed tym, usunąć wszystkie przykładowo. poza tym, zostaje jeszcze sprawa zmiennych.

1

Ale InitializeComponent tworzy i dodaje kontrolki na formę, tak więc musiałbyś przed tym, usunąć wszystkie przykładowo. poza tym, zostaje jeszcze sprawa zmiennych.

Nie wydaje mi się żeby trzeba je było usuwać, init... tworzy wszystko od nowa, nic nie zostaje jeśli o to chodzi. A co do zmiennych, to nie wiem czy autor je chce wykasować? W dużej części programów to okno jest punktem wyjścia programu, więc wyzerowanie zmiennych równałobysię restartowi aplikacji.

0

zajrzyj co zawiera w sobie InitializeComponent.
poza tym to łatwo sprawdzić, wywołaj InitializeComponent, poźniej zmien polozenie kontrolek, chociazby wywołaniem przycisku i znow wywołaj InitializeComponent.

1

[wstyd] jak zwykle masz rację ;) Chociaż może pomogłoby Controls.Clear()...

Ale dobra, nieważne. Przepraszam za zaśmiecanie forum, już Somekind podał dobre rozwiązanie...

0
MSM napisał(a)

Chociaż może pomogłoby Controls.Clear()...

Hm, od dawna nie używałem .NET i trochę mi się pozapominało, ale czy przypadkiem podpięte eventy nie będą trzymać referencji do obiektu nadal?

0

dziękuję za wszystkie odpowiedzi.. jako ze forma formularza nie jest forma "główną" zdecydowałem się na takie rozwiązanie które po poprawnym zapisaniu danych z formularza w bazie zamyka formę z informacją w postaci messagebox'a informującego o poprawności zapisania danych w bazie.. w związku z tym pytanie jak sprawić by po poprawnym wykonaniu kodu wystąpił komunikat.. kod zapisujący mam w Try czy jest jakiś sposób by po poprawnym wykonaniu kodu w sekcji Try wypisać komunikat ?

0

try
{
instrukcja1
instrukcja2
instrukcja3
Komunikat
}

instrukcje w try wykonuja sie do momentu napotkania błędu

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