Есть 2 кнопки, с 1 кнопки мы создаем 2 кнопку вот так:
private static int X = 100;
private static int Y = 100;
System.Windows.Forms.Button buttonDyn
private void buttonDynamic_Click(object sender, EventArgs e)
{
AddButton(X, Y);
X += 100;
}
private void AddButton(int x, int y)
{
// создаем контрол
buttonDyn = new System.Windows.Forms.Button();
// устанавливаем необходимые свойства
buttonDyn.Location = new System.Drawing.Point(x, y);
buttonDyn.Name = "button1";
buttonDyn.Size = new System.Drawing.Size(75, 23);
buttonDyn.TabIndex = 0;
buttonDyn.UseVisualStyleBackColor = true;
// button1_Click - функция обработчик события нажатия на кнопку
buttonDyn.Click += new System.EventHandler(buttonDyn_Click);
Controls.Add(buttonDyn); // добавляем на форму
//вот здесь меняем цвет кнопки
buttonDyn.BackColor = Color.Chartreuse;
}
При нажатии на 2 кнопку (которую мы создали динамически) кнопка 1 и кнопка 2 должны поменять цвет:
private void buttonDyn_Click(object sender, EventArgs e)
{
buttonDynamic.BackColor = Color.DarkBlue;
buttonDyn.BackColor = Color.DarkBlue;
}
Но цвет меняется только на первой кнопке. Предполагаю что программа не понимает к какой кнопке это относится. buttonDynamic ведь создается динамически и их может быть много. Тогда как решить эту задачу?
Все просто, в обработчиках событий для этого предусмотрен параметр sender
. sender
всегда (не считая экзотических реализаций и ошибок) содержит ссылку на объект, который это событие инициировал.
private void buttonDyn_Click(object sender, EventArgs e)
{
//по коду выше это постоянная кнопка
buttonDynamic.BackColor = Color.DarkBlue;
//для динамических меняем
//buttonDyn.BackColor = Color.DarkBlue;
//на
(sender as Button).BackColor = Color.DarkBlue;
}
и верните buttonDyn
обратно к состоянию локальной переменной, от этого поля ни какой пользы, только путаница.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Мне нужно добавить ссылку на проектДействую согласно документации https://msdn
Есть задача встроить элемент управления в панель задач Windows, но я не знаю как это реализоватьМожет кто подскажет в какую сторону смотреть...
В книге Албахари "C# 60 in a Nutshell" написано следующее:
Использую стандартный treeViewУзлы добавил через свойства компонента Nodes -> Edit Nodes