Windows窗体在显示消息之前等待5秒钟

时间:2014-04-23 16:29:41

标签: c# winforms timer sleep

我想让用户在用户可以做某事之前等待5秒但由于我不想做Thread.Sleep(5000);因为我希望加载表单而遇到问题以及可以查看的功能,但我不想让用户在5秒钟内做任何事情(他们可以尝试点击按钮,但不会发生任何事情)。

由于回答者的缘故,我做了多少工作(由于属性,我的代码略有不同):

var t = Task.Delay(1000) //1 second/1000 ms
t.Wait();

3 个答案:

答案 0 :(得分:8)

你可以随时禁用所有表格,并在5秒后启用它......

(使用.net framework 4.5的例子)

//Your window Constructor
public MyWindow()
{
    InitializeComponent();

    this.Cursor = Cursors.WaitCursor; 
    this.Enabled = false;
    WaitSomeTime();

    //load stuff
    .....
}

public async void WaitSomeTime()
{
    await Task.Delay(5000);
    this.Enabled = true;
    this.Cursor = Cursors.Default; 
}

答案 1 :(得分:1)

听起来你想要一个在5秒后被解雇的闪屏。

网上有很多资源显示创建WinForms启动画面的方法(这听起来并不容易),包括

http://mrbool.com/how-to-make-a-splash-screen-in-csharp/26598

您可以让计时器在5秒钟后完成加载完成后通知启动画面。

答案 2 :(得分:0)

让你的构造函数调用后台工作者,并在工作完成事件中加载你的主窗体。