如何在显示表单时运行代码?

时间:2011-09-18 16:20:01

标签: c# winforms

我认为Load事件可能有所帮助,但以下代码只是立即显示“完成”。

public Form1()
{
    InitializeComponent();
    Load += new EventHandler(Form1_Load);
}

void Form1_Load(object sender, EventArgs e)
{
    System.Threading.Thread.Sleep(3000);
    Text = "Done";
}

如何在显示表单后使其休眠?

感谢。

4 个答案:

答案 0 :(得分:22)

Windows窗体有一个Shown事件。查看:http://msdn.microsoft.com/en-us/library/system.windows.forms.form.shown.aspx

或者如果你很懒,请到这里:

public Form1()
{
    InitializeComponent();
    Shown += Form1_Shown;
}

private void Form1_Shown(object sender, EventArgs e) 
{
    System.Threading.Thread.Sleep(3000);
    Text = "Done";
}

享受。

答案 1 :(得分:3)

我建议不要阻止表单,处理一些内容并在标题“完成”后显示,导致你想要做的事情,我猜想。这为用户提供了阻止的UI感觉,这是不好的。

最好显示一些临时的“等待......”表格,并在完成您执行的操作/计算后,显示您的主要表格。

更多以UX为重点的设计。

答案 2 :(得分:0)

您可以在Form1_Load方法中启动Timer,并将其Elapsed事件链接到显示该消息的方法。

答案 3 :(得分:0)

Thread.sleep代码(3000);在Load事件处理程序中将表单打开延迟3秒。这就是为什么它不像你期望的那样工作。计时器是最好的解决方案。