温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#如何实现倒计时关闭提示框功能

发布时间:2021-05-17 09:42:23 来源:亿速云 阅读:335 作者:小新 栏目:编程语言

这篇文章主要介绍了C#如何实现倒计时关闭提示框功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

前两天实现某个功能需要做一个提示框 并且能够自动关闭的,就从网上搜了一个能够自动关闭的提示框 ,但由于我需要的场景是不确定计时时间的,所以并没有使用到该窗体,但是我觉得可以留存备用 ,后边也把我这种倒计时的提示框用处还是很多的,用于自动弹窗 自动关闭 ,虽然在我的项目中没有

其核心方法在 timer(TimerCallBack,Object,int32,int32) TimerCallBack 是一个委托 ,代表要执行的方法,其用途可以用在各个定时去调用方法的场景,而且可以设置窗体的FormBorderStyle的属性为None,设置窗体边框和标题栏外观不显示.

C#如何实现倒计时关闭提示框功能

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<string>(SetMsg), msg);       }       else       {         this.richTextBox1.AppendText(msg + Environment.NewLine);       }     }     public Point Point1 { get; set; }     public void ShowForm()     {       if (this.InvokeRequired)       {         this.Invoke(new MethodInvoker(ShowForm));       }       else       {         this.Location = Point1;         this.BringToFront();         this.Visible = true;       }     }     public void HideForm()     {       if (this.InvokeRequired)       {         this.Invoke(new MethodInvoker(HideForm));       }       else       {         this.richTextBox1.Clear();         this.Visible = false;       }     }   } }

该窗体可以用于实时监控某一个状态时 而弹出的提示框 并根据状态改变而隐藏

使用时,new一个该errorForm

在该窗体有一个RichTextBox,用来显示提示信息,使用SetMsg,设置要显示的信息

需要弹出时,实例调用Show()方法  实际就是讲该窗体的visible属性置为true,让窗体显示,并且调用Clear方法,清除提示信息

需要隐藏时,实例调用HideForm()方法,将窗体visible属性设置为false,调用clear方法,清除提示信息

C#是什么

C#是一个简单、通用、面向对象的编程语言,它由微软Microsoft开发,继承了C和C++强大功能,并且去掉了一些它们的复杂特性,C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程从而成为.NET开发的首选语言,但它不适用于编写时间急迫或性能非常高的代码,因为C#缺乏性能极高的应用程序所需要的关键功能。

感谢你能够认真阅读完这篇文章,希望小编分享的“C#如何实现倒计时关闭提示框功能”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI