Windows窗体显示隐藏控件无法正常工作

时间:2017-07-20 05:47:43

标签: c# .net winforms

我的代码和问题如下

step1.Visible = true; 
//step1 is visible if i retrun from here but if do some work like below than its not visible until the task is completed
Thread.Sleep(5000); // some opration here  Thread.Sleep is just for example
step1.Visible = true;// step1 visible here not before thread going to sleep

这里我想显示每一步的图像,但是第一步图像没有显示它是否跟随一些长时间运行的任务在Thread.Sleep(5000)的情况下是否有任何想法/技巧show step1?

3 个答案:

答案 0 :(得分:2)

在睡眠(任何长时间运行)代码之前使用Application.DoEvents()。 Application.DoEvents()将处理当前在消息队列中的所有Windows消息。

step1.Visible = true; 

// Below 3 lines are not necessary. Use it only if DoEvents() doesn't work.
//step1.Invalidate();
//step1.Update();
//step1.Refresh();

// Will process the pending request of step1.Visible=true;
Application.DoEvents();

Thread.Sleep(5000);
step1.Visible = true;

答案 1 :(得分:1)

我不确定我是否理解你想做什么,但首先我会使用这两个功能:codeShow()

现在你必须使用Hide()和线程之间的通信

希望这可以提供帮助

答案 2 :(得分:0)

您应该使用委托或后台工作程序来实现这一目标。你可以通过以下链接获得和想法。

Animated GIF in Windows Form while executing long process

由于