uygulamanız içinde öyle bir ekran düşünün ki, içinde onlarca textbox,listview,combobox vs vs bir çok kontrol elemanı var, eğer bu form her işlem için açılıp tekrar kapanacaksa, kısaca dispose olacaksa tüm elemanlar sıfırdan oluşacağı için her birinin içi boş gelecektir. Peki ya formu dispose etmeden aynı ekranı tekrar tekrar kullanmanız gerekirse ? Kullanıcının işlemine göre ekrandaki tüm kontrolleri boşaltmanız gerekecektir. Buraya kadar okuduğundan birşey anlamayanlar için konuyu örnekleyelim hemen, bir iş başvuru ekranı düşünün, tek bir form içinde tablara bölünmüş onlarca textbox combobox vs var. Ve siz formu kapatmadan yeni kayıt girişi yaptırmak istiyorsunuz. Kayıt bittiğinde tüm alanları temizleyip sıfırlamanız gerekir. Bu gibi bir durumda yapmanız gereken iki şey vardır, ya form üzerinde sıfırlamanız gereken tüm elemanları alt alta yazıp sıfırlayacaksınız, veya form elemanlarını bir döngü ile bulup nesne türüne göre sıfırlayacaksınız. Ben her ikisi içinde örnek yapıyorum, tercih sizin.
Bknz, Uzun yol :
txtAd.Text="" txtSoyad.Text="" txtAdres.Text="" txtTelefon.Text="" txtFax.Text="" txtGsm.Text="" txtChkAskerlikYapmis.checked=False txtComboMezuniyetTuru.SelectedIndex=0 'vs vs vs
Bknz, Kısa yol:
For Each pnl As Control In Me.Controls If (TypeOf pnl Is System.Windows.Forms.TextBox) Then Dim xtt As TextBox = DirectCast(pnl, TextBox) xtt.Text = "" ElseIf (TypeOf pnl Is System.Windows.Forms.ComboBox) Then Dim xtt As ComboBox = DirectCast(pnl, ComboBox) xtt.Text = "" ElseIf (TypeOf pnl Is System.Windows.Forms.CheckBox) Then Dim xtt As CheckBox = DirectCast(pnl, CheckBox) xtt.Checked = False End If Next
Şöyle bir göz atınca kısa yol aslında daha uzunmuş gibi gelebilir, ama siz bir formda ki temizlemeniz gereken eleman sayısının 50-100 arası olduğunu düşünün, ne demek istediğimi anlayacaksınız zaten :)