在表单加载后立即调用方法的最佳方法是什么?

时间:2010-06-02 13:13:52

标签: c# .net winforms method-call form-load

我有一个C#windows窗体应用程序。我当前设置它的方式,当Form1_Load()运行时,它检查恢复的未保存数据,如果找到一些,它会提示用户是否要打开该数据。当程序运行时,它可以正常工作但是消息框会立即显示,并且主程序表单(Form1)在用户单击是或否之后才会显示。我想首先弹出Form1然后弹出消息框提示。

现在,在我在Form中创建一个计时器之前解决这个问题,在Form1_Load()方法中启动计时器,然后在第一个Timer Tick事件中执行检查和用户提示。这种技术解决了这个问题,但似乎可能有更好的方法。

你们有更好的想法吗?

编辑:我想我也使用后台工作人员做类似的事情。通过调用方法返回到表单线程所有麻烦似乎有点傻,所有的垃圾只是让它延迟了几毫秒!

4 个答案:

答案 0 :(得分:13)

我会使用Form1_Shown()

答案 1 :(得分:5)

使用Shown事件。它似乎适合您的需要,并且只会在第一次显示表单时显示。

Form f1 = new Form();
f1.Shown += new EventHandler(f1_Shown);

public void f1_Shown(object sender, EventArgs e)
{
   // Show dialog in here
}

答案 2 :(得分:2)

  • 使用Windows.Forms.Timer是一种很好的,稳定的,众所周知的,易于理解的技术,可以满足您的需求。我会避免任何其他计时器对象。

  • 表单的Shown事件效果很好。

  • 重载/覆盖Show方法。 (我更喜欢控制的首选技术。)在这种方法中,我会进行所需的检查。准备好后,我会调用base.Show方法,然后进行任何其他处理,例如消息框,提示,日志记录等。

答案 3 :(得分:2)

尝试“已显示”事件:

Form.Show Event