大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
C#中怎么实现倒计时关闭提示框功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联建站是专业的金口河网站建设公司,金口河接单;提供成都网站制作、网站设计、外贸网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行金口河网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
其核心方法在 timer(TimerCallBack,Object,int32,int32) TimerCallBack
是一个委托 ,代表要执行的方法,其用途可以用在各个定时去调用方法的场景,而且可以设置窗体的FormBorderStyle
的属性为None,设置窗体边框和标题栏外观不显示.
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace NewuView.Mix{ public partial class AutoCloseMessageBox : Form { public AutoCloseMessageBox() { InitializeComponent(); } public void getMassage(string text) { label1.Text = text; } public void GetText(string caption) { this.Text = caption; } System.Threading.Timer _timeoutTimer; string _caption; AutoCloseMessageBox(string text, string caption, int timeout) { _caption = caption; _timeoutTimer = new System.Threading.Timer(OnTimerElapsed, null, timeout, System.Threading.Timeout.Infinite); AutoCloseMessageBox m_MassageBox = new AutoCloseMessageBox(); m_MassageBox.getMassage(text); m_MassageBox.GetText(caption); m_MassageBox.ShowDialog(); public static void Show(string text, string caption, int timeout) { new AutoCloseMessageBox(text, caption, timeout); } void OnTimerElapsed(object state) { IntPtr mbWnd = FindWindow(null, _caption); if (mbWnd != IntPtr.Zero) SendMessage(mbWnd, WM_CLOSE, IntPtr.Zero, IntPtr.Zero); _timeoutTimer.Dispose(); } const int WM_CLOSE = 0x0010; [System.Runtime.InteropServices.DllImport("user32.dll", SetLastError = true)] static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)] static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam); }}
调用时直接使用类名.show(text,captiom,timeout)
直接调用即可
下边是当时的项目使用场景的解决办法
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace NewuView.Mix{ public partial class ErrorForm : Form { public ErrorForm() { InitializeComponent(); } private void BarcodeErrorForm_Load(object sender, EventArgs e) { this.ShowInTaskbar = false; } public void Clear() { if (this.InvokeRequired) { this.BeginInvoke(new MethodInvoker(Clear)); } else { this.richTextBox1.Clear(); } } public void SetMsg(string msg) { if (this.InvokeRequired) { this.BeginInvoke(new Action
该窗体可以用于实时监控某一个状态时 而弹出的提示框 并根据状态改变而隐藏
使用时,new一个该errorForm
在该窗体有一个RichTextBox,用来显示提示信息,使用SetMsg,设置要显示的信息
需要弹出时,实例调用Show()方法 实际就是讲该窗体的visible属性置为true,让窗体显示,并且调用Clear方法,清除提示信息
需要隐藏时,实例调用HideForm()方法,将窗体visible属性设置为false,调用clear方法,清除提示信息
关于C#中怎么实现倒计时关闭提示框功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。