Динамическое создание массива кнопок с событием - C#
Формулировка задачи:
Только начинаю копать C#, прошу сильно не пинать.
Создаю массив кнопок с событием:
Для инициализации кнопки в событии хотел использовать ее текст но компилятор ругается
т.е. sender не содержит ссылку на мои кнопки. Как узнать какая кнопка кликнута?
Button[] btnDisk1;
////////
private void LoadDrivers(GroupBox grb)
{
DriveInfo[] AllDrivers = DriveInfo.GetDrives();
btnDisk1 = new Button[AllDrivers.Length];
int i = 0;
foreach (DriveInfo InfoDrive in AllDrivers)
{
Size Sz = new Size(45, 23);
btnDisk1[i] = new Button();
btnDisk1[i].Text = InfoDrive.Name.Replace("\\","");
Point Pt = new Point(3*(i+1)+Sz.Width*i, 9);
btnDisk1[i].Location = Pt;
btnDisk1[i].Size = Sz;
btnDisk1[i].Click += new EventHandler(btn_click);
grb.Controls.Add(btnDisk1[i]);
btnDisk1[i].Visible = true;
i++;
}
}
private void btn_click(object sender, EventArgs e)
{
MessageBox.Show(sender.Text);
}
"object" не содержит определения для "text" и не был найден метод расширения "text", принимающий тип "object" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку)
Решение задачи: «Динамическое создание массива кнопок с событием»
textual
Листинг программы
MessageBox.Show(((Button)sender).Text);