PorFavorDama adlı üyeden alıntı

Butonların isimlerinide rakam olarak verirseniz listboxta tıkladığınızda direk o tag deki butona gider yani ifle kontrol edebilirsiniz . Daha sonra ,

butona görev atamayı şöyle yapabilirsiniz : listboxtaki rakama tıkladığınızda içinde şu kod çalışacak.
(örneğin button1 için)

Button1.Click += new EventHandler(MessageBoxtaGoster);

Onun öncesinde de aşağıdaki gibi bir fonksiyon tanımlayacaksınız herhangi bir yere



private void MessageBoxtaGoster (object sender,System.EventArgs e)

{

MessageBox.Show("Butona tıklandı");

}






using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Project1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

Button dinamikButon;
string[] bS;
List liste = new List();

private void btn_basla_Click(object sender, EventArgs e)
{
txt_satir.Enabled = false;
txt_sira.Enabled = false;
btn_bitir.Enabled = true;
btn_basla.Enabled = false;

int satir = Convert.ToInt32(txt_satir.Text);
int sira = Convert.ToInt32(txt_sira.Text);

Button[] ara = new Button[sira];
bS = new string[sira * satir];
int a = 20;
int b = 1;
int index = 0;
for (int j = 1; j <= satir; j++)
{
for (int i = 1; i <= ara.Length; i++)
{
Button ai = new Button();
ai.Text = ("Buton " + b);
ai.Name = ("btn_" + b);
ai.BackColor = Color.Blue;
ai.ForeColor = Color.White;
ai.Size = new Size(100, 30);
ai.Location = new Point((i * 100) - 90, a);
panel1.Controls.Add(ai);
ai.Click += new EventHandler(dinamikMetod);
b++;
bS[index] = ai.Name.ToString();
index++;


}
a = a + 40;
}
listBox1.Visible = true;
}

private void btn_bitir_Click(object sender, EventArgs e)
{
listBox1.Visible = false;
txt_satir.Enabled = true;
txt_sira.Enabled = true;
btn_basla.Enabled = true;
btn_bitir.Enabled = false;
panel1.Controls.Clear();
listBox1.Items.Clear();
txt_satir.Clear();
txt_sira.Clear();
}

private void Form1_Load(object sender, EventArgs e)
{
btn_bitir.Enabled = false;
listBox1.Visible = false;
}

public void dinamikMetod(object sender, EventArgs e)
{
listBox1.Items.Clear();
dinamikButon = (sender as Button);
int sayi = dinamikButon.TabIndex + 1;
for (int a = 1; a <= sayi; a++)
{
listBox1.Items.Add(a);

}

}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
String a = listBox1.SelectedIndex.ToString();
int sayi = Convert.ToInt32(a);
int sayi2 = sayi + 1;

string hedef = ("btn_" + sayi2.ToString());


for (int i = 0; i <= bS.Length; i++)
{
if (hedef.Equals(bS[i]))
{


panel1.Controls[i].BackColor = Color.Green;



break;

}
}
}


}
}




Kodlar bu şekılde. Buttonları numaralandırma ile yaptım. Fakat Listboxtan basılan rakamın buttonu aktif diğer buttonlar (paneldeki buttonlar) etkisiz olmalı bunu nasıl yapabilirim?