【问题标题】:How to Suspend a button event in C#?如何在 C# 中暂停按钮事件?
【发布时间】:2009-04-21 04:39:28
【问题描述】:

在我的应用程序中,我想暂停一个按钮事件一段时间,以便我可以触发另一个事件,之后第一个按钮事件将恢复。在 c# 中,我不知道如何使用线程异步执行它。请帮忙。提前谢谢..

【问题讨论】:

    标签: c# multithreading events suspend


    【解决方案1】:

    如果您想触发第二个事件并等待它完成后再继续,那么为什么不从第一个事件处理程序中同步触发它呢?那会简单得多。

    编辑:

    如果您希望一个按钮触发另一个按钮的事件处理程序中的代码,我建议您将其移出到一个单独的函数中,然后调用它。换句话说,这样做:

    private void button1_Click(object sender, EventArgs e)
    {
        DoButtonStuff();
    }
    
    private void button2_Click(object sender, EventArgs e)
    {
        DoButtonStuff();
    }
    
    private void DoButtonStuff()
    {
        // code that was originally in button2_Click()
    }
    

    如果按钮执行完全相同的操作,您甚至可以为它们分配完全相同的处理程序。

    但是,如果您真的必须以编程方式“单击”按钮,那么最简单的方法可能是:

    button2.PerformClick();
    

    这将引发 Click 事件。

    【讨论】:

    • 是的,我正在尝试这样做,我需要一些示例代码。我需要知道如何在其他事件中触发按钮事件。但是我不知道按钮事件的参数请提供示例代码
    【解决方案2】:

    这听起来像是您的应用程序中的一个设计问题,而您正在从错误的角度解决它。

    【讨论】:

      【解决方案3】:

      你能用后台工作人员做点什么

      background worker bw = new background worker
      
      
      button1
      
      while bw.inprogress
      {
      
      //kill time
      
      }
      bw.(dosomething)
      
      
      
      button2
      {
      while bw.inprogress
      {
      //killtime
      
      }
      bw.run(dosomething)
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-10
        • 1970-01-01
        • 2015-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多