在c# WinForm 中,定时弹出一个窗口后,如何让它在5秒后自动消失。我用了两个Timer,但是不好控制时间。
timer1的事件是定时弹出一个窗口,然后窗口弹出后,要让它5秒后自动消失。怎么做?谢谢!~~
因分不多,只能给30
timer1的事件是定时弹出一个窗口,然后窗口弹出后,要让它5秒后自动消失。怎么做?谢谢!~~
因分不多,只能给30
解决方案 »
- C# winform程序连接sql数据库,必须要在客户机上安装sql服务器吗?那个本地数据库怎么用?
- C#应用CreatePen的使用问题
- C++DLL 2 C#
- 这段代码"Subject: =?gb2312?Q?=BB=B6=D3=AD=BC=D3=C8=EB?="是什么编码方式?
- 如何删除dataGrid选定行?
- ********** (C#)未来程序员老婆的理想标准 ***********
- list转json格式
- 请问: double b = 203.6-200; 计算得:b=3.5999999999999943 何故???????????????????????
- C#对Excel的图表操作!(关于x轴的绑定。。。谢谢!)
- DataGrid同一列不同行的只读属性可否不同?
- winform下listbox绑定datareader数据源的问题
- C#像千千静听一样头部滚动
释放内存的窗体对象就可以了
贴
代码
private void Timer_TimesUp(object sender, System.Timers.ElapsedEventArgs e)
{
if (this.InvokeRequired)
{
setSafeElapsed s = new setSafeElapsed(Timer_TimesUp);
this.Invoke(s, new object[] { sender, e });
}
else
{
IsShowForm(true);
//5'自动消失
AutoHideFrom(5);
}
}
//自动消失
private void AutoHideFrom(int timer)
{
System.Timers.Timer timerStop = new System.Timers.Timer();
timerStop.Enabled = false;
timerStop.AutoReset = false;
timerStop.Interval = (timer * 1000);
timerStop.Enabled = true;
timerStop.Elapsed += new System.Timers.ElapsedEventHandler(HideForm);
timerStop.Start();
}
private void HideForm(object sender, System.Timers.ElapsedEventArgs e)
{
if (this.InvokeRequired)
{
setSafeElapsed s = new setSafeElapsed(Timer_TimesUp);
this.Invoke(s, new object[] { sender, e });
}
else
{
IsShowForm(false);
}
}
{
if (isShow)
{
if (WindowState == FormWindowState.Minimized)
{
Visible = true;
WindowState = FormWindowState.Normal;
}
else
{
WindowState = FormWindowState.Minimized;
Visible = false;
}
}
else
{
if (WindowState == FormWindowState.Normal)
{
WindowState = FormWindowState.Minimized;
Visible = false;
}
else
{
WindowState = FormWindowState.Minimized;
Visible = false;
}
}
}
private Timer timer1;
public Timer Timer1{
get{return timer1;}
}
private void Initial(){
//...其它代码省略
timer1.Interval = 3000;//form2关闭后第3秒打开新窗体。
}
private void timer1_Tick(object sender,System.Timers.ElapsedEventArgs e){
Form2 form = new Form2(this);
form.Show();
timer1.Stop();
}
}class Form2{
private Form1 form1;
Form2(Form1 form){
form1 = form;
}
private Timer timer1;
private void Initial(){
//...其它代码省略
timer1.Interval = 5000;//form2打开后5秒执行Tick事件(关闭窗体 )
}
private void timer1_Tick(object sender,System.Timers.ElapsedEventArgs e){
form1.Timer1.Start();
this.Close();
}
}
private void NoticeBoard_Load(object sender, EventArgs e)
{
bTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent); bTimer.Interval = 1000;
bTimer.Enabled = true;
}
int MinuteCount = 0;
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
lbl_Notice.Text = "超过 5 分钟, " + (30 - MinuteCount) + " 秒后自动关闭";
MinuteCount++;
if (MinuteCount == 30)
{ Application.Exit(); }
}
也可以定义Timer啊`
线程就休眠5秒
Timer就直接设定
然后在Timer这个事件中直接写把这个窗口关了,this.form.Close()