C#激活手动一个事件
C# activate manual a 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;
}
}
这就是点击事件。
以下代码段是计时器触发器。
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();
}
}
分离逻辑和事件处理。
最简单的提取方法:
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();
}
}
如果您真的想引发按钮的 Click
事件,您可以使用按钮的 PerformClick()
方法。
yourbutton.PerformClick();
This method can be called to raise the Click 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;
}
}
这就是点击事件。 以下代码段是计时器触发器。
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();
}
}
分离逻辑和事件处理。
最简单的提取方法:
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();
}
}
如果您真的想引发按钮的 Click
事件,您可以使用按钮的 PerformClick()
方法。
yourbutton.PerformClick();
This method can be called to raise the Click event.