Problem z czyszczeniem textboxów itp w tabcontrol

0

Witam,
Od kilku dni borykam się z problemem na którego nie potrafię odnaleźć odpowiedzi. Chodzi konkretnie o czyszczenie kontrolek w formie a konkretniej w tabcontrol, który znajduje się w formie. Robię formularz, na którym znajduje się tabcontrol. W każdej z zakładek tabcontrol mam textboxy i checkboxy. Jak mogę je czyścić programowo? Próbowałem już wszystkiego co znalazłem w necie i nic. Może ktoś już miał z tym problem i podzieli się rozwiązaniem...Dodam, że jeśli zrobie to ręcznie (texbox1.Clear()) to czyszczenie odbywa się bez problemu. Gdy skorzystam z tego poniżej, to program nie wyrzuca błędu. Procedura czyszczenia się przeprowadza ale wizualnie nic nie czyści...

             foreach (Control c in this.Controls)

                if (c is TextBox)
                {
                    (c as TextBox).Clear();
                }
        

To było najprostsze rozwiązanie, które działa dla formy. Jak to teraz przerobić żeby działało dla każdej zakładki tabcontrol, które znajdują się w Formie? Próbowałem już dodawać this.Tabs.Controls...też nic nie pomogło

0

TabControl.GetControl, TabControl.GetItems

0

szukam bez przerwy...testowałem to co napisałeś i też mi nic nie czyści...a mam do wyczyszczenia textboxy checkboxy

1
foreach (TabPage page in tabControl1.TabPages)
            {
                foreach (Control control in page.Controls)
                {
                    if (control is TextBox)
                        ((TextBox)control).Clear();
                    if (control is CheckBox)
                        ((CheckBox)control).Checked = false;
                }
            }
0

No działa) tylko ciekawe czemu nie czyści tabpage [0] poza tym inne czyści:) Znalazłem teraz coś takiego co spełnia moje oczekiwania

         private void CzyszczenieKontrolek(Control parent)
        {
            foreach (Control ctrl in parent.Controls)
            {
                if (ctrl.Controls.Count > 0) 
                { 
                    CzyszczenieKontrolek(ctrl); 
                }
                if (ctrl is TextBox)
                {
                    ctrl.Text = String.Empty;
                }
            }
        }

tylko nie do końca wiem jak to działa krok po kroku. Jeśli wywalę pierwszy warunek IF, kod już nie spełnia swojego zadania. Do czego służy ta część kodu??

0

Pierwszy if jak widzisz wywoluje sie rekurencyjnie. Jesli przejdziesz do widoku formy, mozesz otworzyc sobie z menu (nie wiem jak to szlo po polsku, wiec strzelam) Widok->Dodatkowe->Budowa formularza. Wtedy zobaczysz, ze sama kontrolka TabControl nie posiada wszystkich TextBoxow.

0

A po co właściwie tak kombinować — nie możesz zamknąć okna i otworzyć go na nowo?

0

Zamknąć i otworzyć??? A co z ewentualnymi Properties itd. na tej formie? Chyba to nie jest zbyt dobry pomysł.

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