欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

WinForm实现页面按钮定时隐藏功能

程序员文章站 2023-11-12 19:25:28
本文实例讲述了winform实现页面按钮定时隐藏功能。分享给大家供大家参考,具体如下: 有时候在做程序时需要将页面上某一项显示出来,然后过一段时间后消失掉,这时可以通过t...

本文实例讲述了winform实现页面按钮定时隐藏功能。分享给大家供大家参考,具体如下:

有时候在做程序时需要将页面上某一项显示出来,然后过一段时间后消失掉,这时可以通过timer定时来实现

private void form1_load(object sender, eventargs e)
{
  system.timers.timer t = new system.timers.timer(3000);
  t.elapsed += new system.timers.elapsedeventhandler(ontimedevent);
  t.enabled = true;
  t.autoreset = false;
}

然后在ontimedevent事件中写入相应的代码,列如:label1.visible = false;此时会发现这两个不是同一个线程,因此我们需要用委托delegate来实现跨线程

定义一个委托

private delegate void setvisiblecallback();
//在给label1.visible赋值的地方调用以下方法即可
private void setvisible()
{
  // invokerequired需要比较调用线程id和创建线程id
  // 如果它们不相同则返回true
  if (this.label1.invokerequired)
  {
    setvisiblecallback d = new setvisiblecallback(setpan);
    this.invoke(d);
   }
   else
   {
    this.label1.visible = false;
   }
}

此时在timer产生的事件中调用setvisible()即可

private void ontimedevent(object sender, system.timers.elapsedeventargs e)
{
  setpan();
}

当然,如果不用委托实现,可以在ontimedevent事件中写入

checkforillegalcrossthreadcalls = false;////避免跨线程的问题
label1.visible = false;

更多关于c#相关内容感兴趣的读者可查看本站专题:《winform控件用法总结》、《c#窗体操作技巧汇总》、《c#数据结构与算法教程》、《c#常见控件用法教程》、《c#面向对象程序设计入门教程》及《c#程序设计之线程使用技巧总结

希望本文所述对大家c#程序设计有所帮助。