У меня есть массив Button в C# WFA, и я хочу создать событие для щелчка любой кнопки в массиве. Как я могу это сделать? И как узнать, какое местоположение в массиве это? Я знаю, что отправитель - это сама кнопкаНажмите событие для Button Array
ответ
Вы можете использовать for
цикл, который замыкает на переменную, содержащую текущий индекс:
for(int i = 0; i < buttons.Length; i++)
{
//it's important to have this; closing over the loop variable would be bad
int index = i;
buttons[i].Click += (sender, args) => SomeMethod(buttons[index], index);
}
Вы можете добавить обработчик событий к каждой кнопке в цикле for.
Внутри обработчика вы можете позвонить по номеру array.IndexOf((Button)sender)
.
попробовать это
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Button[] myButtons = new Button[10];
private void Form1_Load(object sender, EventArgs e)
{
for(int i = 0; i < myButtons.Length; i++)
{
int index = i;
this.myButtons[i] = new Button();
this.myButtons[i].Location = new System.Drawing.Point(((i + 1) * 70), 100 + ((i + 10) * 5));
this.myButtons[i].Name = "button" + (index + 1);
this.myButtons[i].Size = new System.Drawing.Size(70, 23);
this.myButtons[i].TabIndex = i;
this.myButtons[i].Text = "button" + (index + 1);
this.myButtons[i].UseVisualStyleBackColor = true;
this.myButtons[i].Visible = true;
myButtons[i].Click += (sender1, ex) => this.Display(index+1);
this.Controls.Add(myButtons[i]);
}
}
public void Display(int i)
{
MessageBox.Show("Button No " + i);
}
}
}
Это не скомпилировалось. 'Display' не соответствует правильному синтаксису, и вы вызываете метод в цикле' for', не создавая из него делегата. – Servy
компилируется и работает успешно. –
Как добавить изображение к кнопке, этот метод работал для меня, и теперь я пытаюсь добавить изображение – shawn
- 1. Button Нажмите Asp.Net
- 2. Нажмите событие для DataGridCheckBoxColumn
- 3. Нажмите событие для AS2
- 4. PHP YII prettyPhoto Button Нажмите
- 5. JQuery нажмите событие внутри для
- 6. LoadMovieclips Array Нажмите Btn Array
- 7. Нажмите событие для QGraphicsView Qt
- 8. RemoveChild on Button Нажмите
- 9. Infowindow Button jQuery Событие
- 10. Нажмите событие asp image-button внутри gridview с помощью jquery
- 11. Xcode Button Нажмите Alpha
- 12. Asp.net Button Firing Другое событие Button
- 13. WebPart-Button Нажмите
- 14. jQuery Radio Button Нажмите
- 15. VBA Command Button array
- 16. HTML: Radio Button Array
- 17. Javascript next button array
- 18. Button array onclicklistener
- 19. Swift Button Array
- 20. Array To Button C#
- 21. Raphael.js Нажмите Событие
- 22. огонь нажмите событие для dojox мобильной кнопки
- 23. Нажмите событие для динамически созданного массива кнопок
- 24. Как закодировать событие Click Button?
- 25. Событие для оконной ручки Нажмите
- 26. Нажмите Событие для WPF Image
- 27. Нажмите событие для просмотра отчетов?
- 28. Нажмите событие для текстового поля
- 29. Нажмите событие и для цикла
- 30. Добавление нажмите событие для всех выбранных элементов
Спасибо you.I просто хочу знать, что это последняя строка? Я знаю, что он делает, просто хочу знать, как это называется, поэтому я могу это изучить. – user2390564
Создает анонимный метод; этот конкретный синтаксис называется лямбда-выражением. – Servy