باسلام
بالاخره یه جوری حل شد مخصوصا اون قسمت که هر دکمه رویداد خاض خودش رو داشته باشه
private void button2_Click(object sender, EventArgs e)
{
int h = 5;
Button[] buttonArray = new Button[8];
for (int i = 0; i <= h - 1; i++)
{
buttonArray[i] = new Button();
buttonArray[i].Size = new Size(75, 23);
buttonArray[i].Name = "" + i + "";
buttonArray[i].Click += button_Click;//function
buttonArray[i].Location = new Point(40, 20 + (i * 20));
buttonArray[i].Text = "a" + i.ToString();
Controls.Add(buttonArray[i]);
}
}
private void button_Click(object sender, EventArgs e)
{
Button objbtn = (Button)this.ActiveControl;
// کدهای مورد نظر برای هر دکمه
}