Merhaba,
Windows formumda 50 adet ComboBox bulunuyor. ComboBox isimleri ise cmb1,cmb2,...cmb50 diye devam ediyor.
ve 50 adet TextBox bulunuyor. TextBox isimleri ise txt1,txt2,...txt50 diye devam ediyor.
Örnek verirsek;
cmb1 text değeri boş olmadığında yan tarafında bulunan txt1'in enable özelliğini true yapmak istiyorum.
Bazı kodlar yazdım ancak ComboBox'lardan herhangi biri değiştiği zaman tüm TextBoxlar'ın enable özelliğini true yapıyor.
- ...public IEnumerable<Control> GetAll(Control control, Type type)
- {
- var controls = control.Controls.Cast<Control>();
-
- return controls.SelectMany(ctrl => GetAll(ctrl, type))
- .Concat(controls)
- .Where(c => c.GetType() == type);
- }
-
- private void cmb1_SelectedIndexChanged(object sender, EventArgs e)
- {
-
- var allControls = GetAll(this, typeof(ComboBoxEdit));
- var allControls2 = GetAll(this, typeof(TextEdit));
-
- foreach (var combo in allControls)
- {
- for (int i = 1; i <= 50; i++)
- {
- string name = string.Format("{0}{1}", "cmb", i);
- string name2 = string.Format("{0}{1}", "txtİsim", i);
-
- if (combo.Name == name && combo.Text != null)
- {
- foreach (var text in allControls2)
- {
- if (text.Name == name2)
- {
- text.Enabled = true;
- }
- }
- }
- }
- }
Galiba if sorgularında kullandığım "combo.Text != null" ve " text.Enabled = true;" kodları tüm kontrolleri içerdiğinden hata alıyorum. İstediğim özelleştirmeyi yapamadım. Her ComboBox için ayrı ayrı kod da yazmak istemiyorum :)
Yardımlarınızı bekliyorum. Teşekkürler.