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

WinForm button事件中的处置

2013-04-20 
WinForm button事件中的处理private void Open_Click(object sender, EventArgs e){if (openDlg.ShowDialo

WinForm button事件中的处理


        private void Open_Click(object sender, EventArgs e)
        {
            if (openDlg.ShowDialog() == DialogResult.OK)
            {
                loadpic.Visible = true;
                //...........一个长时间的处理
                loadpic.Visible  = false;
            }
        }

上面的代码是不行的,其实就是在长时间处理时,显示一个loading等待图片。
可能要异步方法,正在查资料
求援助
[解决办法]
同问中、、、、、
[解决办法]
loadpic.Visible = true;
Application.DoEvent();
                //...........一个长时间的处理
                loadpic.Visible  = false;
[解决办法]
 //...........一个长时间的处理

可以移出来做成一个方法。

处方法可以用异步执行,或线程来执行。

这样UI就不会受到影响了。
[解决办法]

private bool hasFinished = false;
if (openDlg.ShowDialog() == DialogResult.OK)
{
    Thread t = new Thread(()=>{//...........一个长时间的处理; hasFinished = true;});

    while (! hasFinished)
    {
        loadpic.Visible = true;
    } 
    loadpic.Visible = false;
}

热点排行