[英]C# activate manual a event
i have a Button with a click event in the background.我有一个按钮,在后台有一个点击事件。 Can i use this method in another timer triggered event?我可以在另一个定时器触发事件中使用这个方法吗?
private void bt_Disconnect_Click(object sender, RoutedEventArgs e)
{
if(ser.disconnect())
{
img_Ampel.Source = ampeln[0];
bt_Connect.IsEnabled = true;
bt_Disconnect.IsEnabled = false;
}
}
Thats the click event.这就是点击事件。 The following snippet is the timer trigger.以下代码段是定时器触发器。
private void polling_tick(object sender, EventArgs e)
{
if (!serial_port.IsOpen)
{
mw.Show("Die Verbindung ist abgebrochen!", "Bitte schließen Sie das Gerät wieder an uns klicken Sie auf Verbinden.");
polling.Stop();
MainWindow.bt_Disconnect_Click();
}
}
Separate logic and event handling.分离逻辑和事件处理。
The simplest way is to extract method:最简单的方法是提取方法:
private void DoSmth()
{
if(ser.disconnect())
{
img_Ampel.Source = ampeln[0];
bt_Connect.IsEnabled = true;
bt_Disconnect.IsEnabled = false;
}
}
private void bt_Disconnect_Click(object sender, RoutedEventArgs e)
{
DoSmth();
}
private void polling_tick(object sender, EventArgs e)
{
if (!serial_port.IsOpen)
{
mw.Show("...");
polling.Stop();
DoSmth();
}
}
If you really want to to raise the Click
event of a button you can use PerformClick()
method of button.如果你真的想引发按钮的Click
事件,你可以使用按钮的PerformClick()
方法。
yourbutton.PerformClick();
This method can be called to raise the Click event.可以调用此方法来引发 Click 事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.