Динамическое создание массива кнопок с событием - C#

Узнай цену своей работы

Формулировка задачи:

Только начинаю копать C#, прошу сильно не пинать. Создаю массив кнопок с событием:
         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 или ссылка на сборку)
т.е. sender не содержит ссылку на мои кнопки. Как узнать какая кнопка кликнута?

Решение задачи: «Динамическое создание массива кнопок с событием»

textual
Листинг программы
MessageBox.Show(((Button)sender).Text);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5
Похожие ответы