Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.
0

Birden fazla combobox için kullanılan SelectedIndexChanged metodunu,sadece bir combobox ta uygulamak

Merhaba,

Formda 31 adet datetimepicker, textbox ve combobox var. 

İsimleri şu şekilde kullandım;
combobox = cmb1, cmb2...., cmb31
datetimepicker = dt1, dt2...., dt31
textbox = txts1, txts2...., txts31

Combobox SelectedIndexChanged olayını aşağıdaki gibi düzenledim;

...private void cmb_SelectedIndexChanged(object sender, EventArgs e)
        {
            for (int i = 1; i < 31; i++)
            {
                string name = string.Format("{0}{1}", "cmb", i);
                var nesne = this.Controls[name] as ComboBox;

                    string name2 = string.Format("{0}{1}", "dt", i);
                    var nesne2 = this.Controls[name2] as DateTimePicker;

                    string name3 = string.Format("{0}{1}", "txts", i);
                    var nesne3 = this.Controls[name3] as TextBox;

                    if (nesne.Text == "Tt" || nesne.Text == "Nks" || nesne.Text == "İf" || nesne.Text == "İt")
                    {
                        nesne2.Text = ttTr1;
                    }

                    if (nesne.Text == "Nks") { nesne3.Text = bdNo; }

            }

        }

Amacım tüm combobox larda aynı metodu kullanmak. Ancak yukarıdaki metodu uyguladığımda tüm combobox lar da metot aynı anda gerçekleşiyor. Sadece değeri değişen combobox  ta metodun gerçekleşmesini istiyorum.

Yardımcı olursanız sevinirim...


Soran: 06.03.21 23:33
hakanndogann
90p 4ü

1 Cevap

0
private void cmb_SelectedIndexChanged(object sender, EventArgs e)
{
	var c = sender as ComboBox;
	if (c != null)
	{
		string name2 = $"dt{c.Name.Substring(3)}";
		var nesne2 = this.Controls[name2] as DateTimePicker;

		string name3 = $"txts{c.Name.Substring(3)}";
		var nesne3 = this.Controls[name3] as TextBox;

		if (c.Text == "Tt" || c.Text == "Nks" || C.Text == "İf" || c.Text == "İt")
		{
			nesne2.Text = ttTr1;
		}

		if (c.Text == "Nks") { nesne3.Text = bdNo; }
	}
}

yukarıdaki gibi halloldu.

Teşekkürler 


Cevaplayan: 07.03.21 10:55
hakanndogann
90p 4ü
Cevabı seçen: 07.03.21 13:55
hakanndogann   90p 4ü