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.