Ручной запуск событий c # - PullRequest
1 голос
/ 22 июня 2011

У меня есть кнопка, которая при нажатии отображает некоторую информацию, могу ли я вручную вызвать событие нажатия кнопки в коде?

Мне нужно это, чтобы при нажатии на какую-то другую кнопку оно автоматически вызывало и это событие.

Ответы [ 6 ]

5 голосов
/ 22 июня 2011

Хорошим способом было бы иметь НЕТ кода (кроме вызова метода / функции) в обработчике событий. это позволило бы вызывать его из любого места в вашей программе.

1 голос
/ 22 июня 2011

Вы можете использовать Button.PerformClick()

1 голос
/ 22 июня 2011

Если вас не волнует отправитель или EventArgs, вы также можете просто использовать

Button1_Click(null, new EventArgs());
1 голос
/ 22 июня 2011

Вы можете сделать это так.

private void button1_Click(object sender, EventArgs e)
{
    MessageBox.Show("button1");
}

private void button2_Click(object sender, EventArgs e)
{
    MessageBox.Show("button2");
    button1_Click(sender, e);
}
1 голос
/ 22 июня 2011

Переместите код, отвечающий на нажатие кнопки, в функции и вызовите эту функцию как в обработчике событий, так и в другом.

0 голосов
/ 22 июня 2011

Есть два способа сделать это,

1 # - = Переместить код, который вы написали в событии нажатия кнопки, в другую функцию и вызывать эту функцию в этом событии нажатия кнопки, а также в другом событии нажатия кнопки.

2 # - Для события нажатия второй кнопки укажите событие нажатия первой кнопки в качестве обработчика события.

3 # - вызвать обработчик события button1 внутри button2.

private void button2_Click(object sender, EventArgs e)
{
    button1_Click(sender, e);
}

Я посоветую вам перейти ко второму, если у вас есть одинаковый набор функций для обеих кнопок.

...