Динамическое создание компонентов и подписка их на события - C#
Формулировка задачи:
Добрый день!
Я начинающий программист, пытаюсь разобраться с созданием массивов control-ов и ихних событий. У меня есть три tableLayoutPanel, я в цыкле поместил в каждую ячейку лейблы и создал для них события MouseEnter и MouseLeave. Программа запускается и работает, но при наведении курсора на label выдаёт ошибку. Вот мой код:
Подскажите, что здесь не так.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace loto { public partial class Form1 : Form { int i, value; Label[] label = new Label[75]; Random rand = new Random(); public Form1() { InitializeComponent(); for (i = 0; i < label.Length; i++) { value = rand.Next(1, 100); label[i] = new Label(); label[i].Name = "label" + (i + 1).ToString(); label[i].Margin = new Padding(3, 3, 2, 2); label[i].TabIndex = i; label[i].Dock = DockStyle.Fill; label[i].BackColor = SystemColors.Control; label[i].Font = new Font("MS Reference Sans Serif", 12, FontStyle.Bold); label[i].TextAlign = ContentAlignment.MiddleCenter; if (value < 10) label[i].Text = "0" + value.ToString(); else label[i].Text = value.ToString(); label[i].MouseEnter += new EventHandler((s, args) => { label[i].BackColor = Color.LightGray; }); label[i].MouseLeave += new EventHandler((s, args) => { label[i].BackColor = SystemColors.Control; }); } for (i = 0; i < 25; i++) tableLayoutPanel1.Controls.Add(label[i]); for (i = 25; i < 50; i++) tableLayoutPanel2.Controls.Add(label[i]); for (i = 50; i < 75; i++) tableLayoutPanel3.Controls.Add(label[i]); } } }
Решение задачи: «Динамическое создание компонентов и подписка их на события»
textual
Листинг программы
label[i].MouseEnter += new EventHandler((s, args) => { (s as Label).BackColor = Color.LightGray; }); label[i].MouseLeave += new EventHandler((s, args) => { (s as Label).BackColor = SystemColors.Control; });
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д