Winform应用程序按钮变得没有响应

时间:2012-02-06 08:52:49

标签: c# winforms button

我有一个在3.5框架中开发的winform应用程序。间歇性地,应用程序中的按钮变得无响应。应用程序从不在标题中显示“无响应”,但它只是按钮。即使我在按钮点击代码中设置了一个断点,当点击按钮时控件也永远不会出现!!!

可能是什么原因?

2 个答案:

答案 0 :(得分:0)

可能原因是你在UI线程中做了一些事情(访问数据库,连接到互联网,阅读文件等),所以它很忙。

以下是解决方案:

  • 在代码隐藏文件中永远不会有业务逻辑(比如,在Button_Click方法,OnLoad方法等中都没有)。
  • 使用MVC / MVP模式将业务逻辑与UI分离。
  • 始终异步执行业务逻辑(工作线程,任务等),当您的业务逻辑分离时,这是微不足道的。

答案 1 :(得分:0)

在你确定接受率之前,最可能的答案是Button Click事件已经失去了Handles子句。在Vb.Net中,很容易看到Handles xyz事件:

Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click

在c#中,您必须在表单的构造函数中钻取InitializeComponent(F12)调用。然后选中点击按钮的按钮:

this.Button1.Click += new System.EventHandler(this.Button1_Click);