首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

button控件 Enable属性 在起线程下出现的奇怪有关问题。

2012-01-10 
button控件 Enable属性 在起线程下出现的奇怪问题。请指教!我的做法是这样的。Button1按钮privatevoidButton

button控件 Enable属性 在起线程下出现的奇怪问题。请指教!
我的做法是这样的。Button1按钮
private   void   Button1_Click(object   sender,   System.EventArgs   e)
{
Button1.Enabled   =   false;
Thread   tnew   =   new   Thread(new   ThreadStart(SetFormula));
tnew.Start();//起线程计算我的方法
Button1.Enabled   =   true;
}

目的就是点击按钮变成不可用同时计算,计算完成后使按钮变为可用。
我没用线程时可以达到我要的效果,但是用了线程后,一闪一下按钮就又变成可以使用了,请问怎么做才能让我既能用线程同时Enable也能按照我的想法进行执行。

[解决办法]
public void SetFormula()
{
Thread.Sleep(5000); // 模拟执行的过程

Invoke(new EventHandler(DoInvoke)); // 执行完后恢复
}

private void DoInvoke(object sender, EventArgs e)
{
button1.Enabled = true;
}

private void button1_Click(object sender, EventArgs e)
{
button1.Enabled = false;
Thread tnew = new Thread(new ThreadStart(SetFormula));
tnew.Start();//起线程计算我的方法
}

热点排行