赖美云,许月刚,ca1305
在项目实践中,我们 可能会遇到需要将一些控件上显示的内容只显示一段时间过后清空。
下面我们来实现这种操作:
首先需要注意的是:在wpf中涉及到界面操作的话,一定要使用定时器dispatchertime,dispatchertimer是为wpf专门设计的,不然的话使用其他种类的定时器会提示界面资源被其他线程所拥有而无法更新界面。
首次我们需要声明一个dispatchertimer定时器
private dispatchertimer showtimer = new dispatchertimer();
然后绑定定时器要处理的方法
showtimer.tick += new eventhandler(setnull);
private void setnull(object sender,eventargs e) { label1.content = ""; }
之后,我们将规定多长时间后触发定时器绑定的方法,并开启定时器
showtimer.interval = new timespan(0, 0, 0, 6); showtimer.start();
全部代码如下:
using system; using system.collections.generic; using system.linq; using system.text; using system.threading.tasks; using system.windows; using system.windows.controls; using system.windows.data; using system.windows.documents; using system.windows.input; using system.windows.media; using system.windows.media.imaging; using system.windows.navigation; using system.windows.shapes; using system.threading; using system.windows.threading; namespace 使控件内容显示一段时间后消失 { /// <summary> /// mainwindow.xaml 的交互逻辑 /// </summary> public partial class mainwindow : window { public mainwindow() { initializecomponent(); } private dispatchertimer showtimer = new dispatchertimer(); private void button_click(object sender, routedeventargs e) { setlabel("jianjipan,您好"); showtimer.tick += new eventhandler(setnull); showtimer.interval = new timespan(0, 0, 0, 6); showtimer.start(); } private void setlabel(string text) { label1.content = text; } private void setnull(object sender,eventargs e) { label1.content = ""; } } }
实现的效果就是:点击button按钮后,在label控件上会出现“jianjipan,您好”的字符串,过6s之后,label控件不显示任何值
源代码如下:(啊啊啊啊啊 小白,不知道源代码怎么上传,求大神告知)
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论