Передача параметра в обработчик события - C#

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

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

Всем привет, не могу решить проблему передачи параметра в обработчик события. В List загоняю динамически создаваемые PictureBox для каждого указывая обработчик Pic_Click. В обработчике пытаюсь принять значение Name кликнутого элемента.
 
 
        List<PictureBox> PicList = new List<PictureBox>();
 
        string Build()
        {
            for (int i = 0; i < 100; i += 100)  
            {
                    PictureBox picbox = new PictureBox();
                    picbox.Name = "id" + i.ToString();
                    ...
                    picbox.Click += new System.EventHandler(pic_Click(picbox, picbox.Name)); //ошибка
                    PicList.Add(picbox);
            }
 
            for (int i = 0; i < PicList.Count; i++)
            {
                this.Controls.Add(PicList[i]);
            }
        }

        void pic_Click(object sender, string a)
        {
            label1.Text = a;
        }
В указанном месте возникает ошибка "Требуется имя метода". Заранее спасибо!

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

textual
Листинг программы
Private PicList As New List(Of PictureBox)()
 
Private Sub Build()
    For i As Integer = 0 To 99 Step 100
        Dim picbox As New PictureBox()
        picbox.Name = "id" + i.ToString()
        '...
        picbox.Click += New System.EventHandler(pic_Click())
        PicList.Add(picbox)
    Next
 
    For i As Integer = 0 To PicList.Count - 1
        Me.Controls.Add(PicList(i))
    Next
End Sub
 
 
Private Sub pic_Click(sender As Object, a As String)
    label1.Text = DirectCast(sender, PictureBox).Name
End Sub

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


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

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

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