Инициирование события “Click” без ввода данных пользователем

У меня есть Маркировка Ссылки Windows Forms, "Обновление", которое обновляет дисплей.

В другой части моего кода, части формы отдельных окон, у меня есть диалоговое окно, которое изменяет данные, загруженные в дисплей во-первых. После выполнения этого другого кода, нажатие "Refresh" обновляет данные правильно.

Существует ли простой путь к диалоговому меню для "нажимания" Маркировки Ссылки "обновления" после того, как это закончило изменять данные?

Использование Visual Studio 2008.

5
задан Raven Dreamer 6 July 2010 в 15:52
поделиться

4 ответа

Для кнопки действительно просто, просто используйте:

button.PerformClick()

В любом случае, я бы предпочел сделать что-то вроде:

private void button_Click(object sender, EventArgs e)
{
   DoRefresh();
}

public void DoRefresh()
{
   // refreshing code
}

и вызвать DoRefresh () вместо PerformClick ()


РЕДАКТИРОВАТЬ (в соответствии с изменениями OP):

Вы все еще можете использовать мое второе решение, которое намного предпочтительнее:

private void linkLabel_Click(object sender, EventArgs e)
{
   DoRefresh();
}

public void DoRefresh()
{
   // refreshing code
}

И извне формы вы можете вызвать DoRefresh () , так как это помечено как публичное.

Но если вам действительно нужно программно генерировать щелчок, просто посмотрите Ответ Юрия-Факторовича

9
ответ дан 18 December 2019 в 13:10
поделиться

Вы можете вызвать метод PerformClick. Но вообще лучше, чтобы событие Click кнопки вызывало написанный вами метод Refresh. А меню вызывало этот метод. В противном случае ваше меню зависит от наличия кнопки.

Edit:

LinkLabel реализует IButtonControl явно. Поэтому вы можете использовать:

((IButtonControl)button).PerformClick();

5
ответ дан 18 December 2019 в 13:10
поделиться
private void MyMethod()
{
   // ...

   // calling refresh
   this.button1_Click(this.button1, EventArgs.Empty);

   // ...
}

private void button1_Click(object sender, EventArgs e)
{
   // refresh code
}
0
ответ дан 18 December 2019 в 13:10
поделиться

вы можете использовать метод для обновления дисплея, bouton_click и dialogBox вызывают этот метод

public void refrechDate()
{
}


private void button_click(...)
{
   refrechData();
}
0
ответ дан 18 December 2019 в 13:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: