当前位置: 代码迷 >> .NET Framework >> TabControl里面放button事件有关问题
  详细解决方案

TabControl里面放button事件有关问题

热度:125   发布时间:2016-05-01 23:26:45.0
TabControl里面放button事件问题
一个button我直接放在窗体里面 用下面代码

        private void button1_Click_1(object sender, EventArgs e)
        {
            button1.Enabled = false;
            Thread.Sleep(5000);
            button1.Enabled = true;
        }

这样子是我要的效果,点击button,把 button设置成不可用,然后处理事情,处理完了,再设置成可用状态 。

但是如果这个放到TabControl里面就不会有这种效果,点击是按钮就会5秒后才响应完成。
------解决思路----------------------
你这段代码就是 按钮就会5秒后才可点击,不同在哪
------解决思路----------------------
用backgroundWorker 的RunWorkerCompleted方法。单线程模式
http://www.cnblogs.com/inforasc/archive/2009/10/12/1582110.html
------解决思路----------------------
用backgroundWorker 的RunWorkerCompleted方法
这个方法是委托给主线程调用的,所以里面不用自己写委托了
所以你可以先在主线程里设置Enable=false;然后在RunWorkerCompleted里设置Enable=true;

至于你想在DoWork里操作UI,依然还是得自己写委托.
  相关解决方案