C# Birden Çok Butonu Pasif Yapma

sofy

Kilopat
Katılım
22 Ekim 2014
Mesajlar
42
Yer
İstanbul
Daha fazla  
Cinsiyet
Erkek
Meslek
Yazılımcı
Arkadaşlar merhaba, C# Form'da okulum için bir proje hazırlıyorum, proje'de 'login' olduktan sonra anasayfa adlı form açılıyor, anasayfa'da load event'inde eğer veri tabanı bağlantısı herhangi bir sebepten kesilmişse bütün butonları pasif etmem gerek, veri tabanı bağlantısı olup olmadığını kontrol edebiliyorum. Yaklaşık 25-30 tane buton var. Bunları tek tek button1.Enabled = false; şeklinde yapmak istemiyorum. Bunu foreach veya for ile yapmanın bir yolu yöntemi var mıdır?
 
Tek tek yazmanız gerekiyor galiba, bunun bir kısayolu olduğunu sanmam. Ancak ortak event ile kontrol edebilirsiniz diye düşünüyorum.
 
Şöyle bir şey olabilir, denemedim ama mantıken olur gibi geliyor.
C#:
foreach(Control c in this.Controls)
{
if(c is Button)
c(Button).Enabled = False;
}

Ayrıca, yine bundan da tam emin olamıyorum şu an, o butonları falan bir panele koyup o paneli pasif yaparsanız panel içindeki elemanlar da pasif olur diye tahmin ediyorum.
 
Tek tek yazmanız gerekiyor galiba, bunun bir kısayolu olduğunu sanmam. Ancak ortak event ile kontrol edebilirsiniz diye düşünüyorum.

Buraya yazmadan önce forumlarda araştırdım ve tam olarak bu olmasa da buna benzer bir şeyler yapanlar var. Ama button'lar ile ilgili bir şey yok.
Buraya yazmadan önce forumlarda araştırdım ve tam olarak bu olmasa da buna benzer bir şeyler yapanlar var. Ama button'lar ile ilgili bir şey yok.

Evet bunu bir forumda bende görmüştüm denedim ama maalesef olmadı, button'larım bir TabControl'un içinde eğer tabControl'u pasif yaparsam o zaman tabControl'de ki Collection'lara da erişemiyorum, yapmayı düşündüğüm şey bu değil ama yine de teşekkür ederim artık hiç bir şey bulamazsam ona bakacağım.
Tabi ki var, design patternler bu is icin varlar.
Observer pattern'i inceleyebilirsin.

İnceleyeceğim teşekkür ederim..
Maalesf Observer pattern'da benim işimi görmedi
 
Son düzenleme:
Bence button pasifleştirmek yerine bağlantı kesildiğinde oturum kapansın, eğer button pasifleştirme şart ise tek tek yaz sonuçda yüzlerce satır kod yazmayacaksın.
 
Buttonları bir GroupBox veya Panel içerisine yerleştirerek Enable durumunu değiştirmeniz yeterli olur.

Dinamik şekilde yapmak isterseniz bir dizi oluşturursunuz ve buttonlarınızı eklersiniz. Diziyi döndürüp Index üzerindeki button'ın Enable değerini değiştirirsiniz. Çok da şey etmeye gerek yok, en kolaylarından çözüm.
 
Buttonları bir GroupBox veya Panel içerisine yerleştirerek Enable durumunu değiştirmeniz yeterli olur.

Dinamik şekilde yapmak isterseniz bir dizi oluşturursunuz ve buttonlarınızı eklersiniz. Diziyi döndürüp Index üzerindeki button'ın Enable değerini değiştirirsiniz. Çok da şey etmeye gerek yok, en kolaylarından çözüm.

Yukarı'da da bir arkadaş yazmıştı, tabControl'ü devre dışı bırak diye, bende öyle yaptım. Teşekkür ederim. Konu Kilit.
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı