En iyi yanıtlayıcılar
Dizi İçindeki Buttona Event Ekleme.

Soru
-
private void Form1_Load(object sender, EventArgs e)
{
Button[] der = new Button[5];
for (int i = 0; i < der.Length; i++)
{
der[i] = new Button();
der[i].Text = "Button" + (i + 1);
der[i].Location = new Point(0, i * 60);
der[i].Size = new Size(100, 50);
this.Controls.Add(der[i]);
}
}
void der[1]_Click(object sender, EventArgs e)
{
MessageBox.Show("deneme");
}Kodlarım bu şekilde yapmak istediğim her buton için ayrı event koyma örneğin birinci butona tıkladığımda " A " yazsın ikinciye tıkladığımda " B " gibi.
- Düzenleyen Emirhannn123 19 Şubat 2019 Salı 12:31
Yanıtlar
-
Cevabınız için teşekkür ederim.
Ayrıca diziye eklememin sebebi hepsine tek tek name vermemek istediğim içindi.Tek tek isim vermenize gerek yok:
private void Form1_Load(object sender, EventArgs e) { for (int i = 0; i < 5; i++) { var button = new Button{ Name=$"Button{i}", Text = $"Button{i + 1}", Location = new Point(0, i * 60), Size = new Size(100, 50) }; this.Controls.Add(button); button.Click += (sender, args) => { MessageBox.Show($"{(char)('A' + i)}") }; } }
- Düzenleyen CetinBasoz 19 Şubat 2019 Salı 15:43
- Yanıt Olarak Öneren Mehmet Emin Kaymaz 19 Şubat 2019 Salı 19:32
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 25 Şubat 2019 Pazartesi 13:51
Tüm Yanıtlar
-
-
private void Form1_Load(object sender, EventArgs e) { Button[] der = new Button[5]; for (int i = 0; i < der.Length; i++) { der[i] = new Button(); der[i].Text = "Button" + (i + 1); der[i].Location = new Point(0, i * 60); der[i].Size = new Size(100, 50); this.Controls.Add(der[i]); der[i].Click += (sender, args) => { MessageBox.Show($"{(char)('A' + i)}") }; } }
-
Cevabınız için teşekkür ederim.
Ayrıca diziye eklememin sebebi hepsine tek tek name vermemek istediğim içindi.- Düzenleyen Emirhannn123 19 Şubat 2019 Salı 13:32
-
Cevabınız için teşekkür ederim.
Ayrıca diziye eklememin sebebi hepsine tek tek name vermemek istediğim içindi.Tek tek isim vermenize gerek yok:
private void Form1_Load(object sender, EventArgs e) { for (int i = 0; i < 5; i++) { var button = new Button{ Name=$"Button{i}", Text = $"Button{i + 1}", Location = new Point(0, i * 60), Size = new Size(100, 50) }; this.Controls.Add(button); button.Click += (sender, args) => { MessageBox.Show($"{(char)('A' + i)}") }; } }
- Düzenleyen CetinBasoz 19 Şubat 2019 Salı 15:43
- Yanıt Olarak Öneren Mehmet Emin Kaymaz 19 Şubat 2019 Salı 19:32
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 25 Şubat 2019 Pazartesi 13:51
-
Cevabınız için teşekkür ederim.
Ayrıca diziye eklememin sebebi hepsine tek tek name vermemek istediğim içindi.Name property'si hiç bir işinize yaramayacak. Bir buton dizisi yapmanıza da gerek yok. Zaten o buttonları bir container'in Controls kolleksiyonuna ekleyeceksiniz sonuçta. Buttonların bir class olduklarını hatırlayın...
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
-
Name propertysini belki kullanacaktır. Bilmiyorum gercekten gerekli mi ama ornegin:
void Main() { Form f = new Form(); for (int i = 0; i < 5; i++) { var button = new Button { Name = $"Button{i}", Text = $"Button{i + 1}", Location = new Point(0, i * 60), Size = new Size(100, 50) }; f.Controls.Add(button); button.Click += (sender, args) => { MessageBox.Show($"{(char)('A' + i)}"); }; } var b = f.Controls.Find("Button3", false).FirstOrDefault(); if (b != null) { ((Button)b).Text = "B3"; } f.Show(); }