国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#實現倒計時關閉提示框功能

2020-01-24 00:02:26
字體:
來源:轉載
供稿:網友

前兩天實現某個功能需要做一個提示框 并且能夠自動關閉的,就從網上搜了一個能夠自動關閉的提示框 ,但由于我需要的場景是不確定計時時間的,所以并沒有使用到該窗體,但是我覺得可以留存備用 ,后邊也把我這種倒計時的提示框用處還是很多的,用于自動彈窗 自動關閉 ,雖然在我的項目中沒有

其核心方法在 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<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#實現倒計時關閉提示框功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梁平县| 舒城县| 磐石市| 建平县| 栖霞市| 郧西县| 五家渠市| 南木林县| 阿克苏市| 伊金霍洛旗| 金山区| 义马市| 大姚县| 吴桥县| 灵石县| 龙江县| 河曲县| 松溪县| 萝北县| 武清区| 咸阳市| 沾化县| 九龙县| 高尔夫| 邻水| 郎溪县| 科技| 玉树县| 泰安市| 噶尔县| 镇江市| 平乐县| 临泽县| 滦南县| 丰台区| 广元市| 应城市| 麦盖提县| 龙门县| 光泽县| 尼玛县|