python倒计时弹框提示_C#倒计时关闭提示框

这种倒计时的提示框用处还是很多的,用于自动弹窗 自动关闭 ,虽然在我的项目中没有

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

b92eb139-9fad-4e29-9ca0-a1c88fb183c1.png

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(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方法,清除提示信息

e7e45291-0e01-414a-9f30-a0714ad37803.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值