在.NET中,Windows Forms有一个在加载窗体之前激发的事件(Form.Load),但在窗体加载之后没有相应的事件激发。我想在表单加载后执行一些逻辑。
有人能给出解决方案的建议吗?
发布于 2008-10-20 16:59:27
您可以使用"Shown“事件:MSDN - Form.Shown
只有在第一次显示窗体时才会引发Shown事件;随后的最小化、最大化、恢复、隐藏、显示或无效和重新绘制将不会引发此事件。
发布于 2015-09-20 23:58:40
第一次它不会启动"AfterLoading",
它只会注册它来开始下一次加载。
private void Main_Load(object sender, System.EventArgs e)
{
//Register it to Start in Load
//Starting from the Next time.
this.Activated += AfterLoading;
}
private void AfterLoading(object sender, EventArgs e)
{
this.Activated -= AfterLoading;
//Write your code here.
}
发布于 2013-09-30 12:55:03
我也遇到了同样的问题,解决方法如下:
实际上,我想显示消息,并在2秒后自动关闭它。为此,我必须生成(动态)简单的表单和一个标签,显示消息,停止消息1500毫秒,以便用户阅读它。并关闭动态创建的表单。显示的事件发生在加载事件之后。所以代码是
Form MessageForm = new Form();
MessageForm.Shown += (s, e1) => {
Thread t = new Thread(() => Thread.Sleep(1500));
t.Start();
t.Join();
MessageForm.Close();
};
https://stackoverflow.com/questions/218732
复制相似问题