C#激活手动事件

时间:2015-10-16 10:15:48

标签: c# event-handling

我在后台有一个带有点击事件的按钮。 我可以在另一个计时器触发事件​​中使用此方法吗?

 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();
        }
    }

2 个答案:

答案 0 :(得分:2)

单独的逻辑和事件处理 最简单的方法是提取方法:

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();
    }
}

答案 1 :(得分:1)

如果您真的要举起按钮的Click事件,可以使用PerformClick()按钮方法。

yourbutton.PerformClick();
  

可以调用此方法来引发Click事件。