注册 登录
编程论坛 C# 论坛

timer延时弹出窗体问题

m2082492107 发布于 2016-07-02 10:41, 2310 次点击
窗口1启动,延时3秒,窗口1隐藏,窗口2弹出怎么实现?
1 回复
#2
yhlvht2016-07-05 21:06
这个这个主要还是因为需要用到定时器,所以需要在子线程中操作窗体,直接写代码会导致报错,需要用到委托或是同步上下文来实现
给个简单的实现
在窗体1中定义System.Threading.SynchronizationContext context;
在窗体1的构造方法中加上context = System.Threading.SynchronizationContext.Current;
在定时器的回调方法中需要这样写
Form2 f2 = new Form2();
context.Post((t) => { this.Hide(); }, null);
context.Post((t) => { f2.Show(); }, null);
1