C# MessageBox.Show每隔3秒自動關閉

來源:互聯網
上載者:User

標籤:os   io   ar   for   art   cti   sp   amp   on   

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
System.Windows.Forms.Timer timer = null;
string WM_Caption = string.Empty;

public Form1()
{
InitializeComponent();
}

 

[DllImport("user32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)]
private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);


[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int PostMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
public const int WM_CLOSE = 0x10;

private void button1_Click(object sender, EventArgs e)
{
ShowMsg("test", "Title");
}


void ShowMsg(string msg, string caption)
{
WM_Caption = caption;

if (timer != null && timer.Enabled == false)
{
timer.Enabled = true;
}
else
{
timer = new Timer(); // 宣告一個Timer物件,名稱為 SetTimer
timer.Interval = (3 * 1000); //x秒後啟動
timer.Tick += new EventHandler(SetTimer_Tick); // 建立一個觸發Tick事件
timer.Start(); // 啟動Timer (即SetTimer 開始啟動 )
}

MessageBox.Show(msg, caption,MessageBoxButtons.OKCancel);
}


void SetTimer_Tick(object sender, EventArgs e)
{
KillMessageBox(); // 執行把 MessageBox 刪除 (即讓MessageBox消失)
((Timer)sender).Enabled = false; //停止時間。記得要轉型為 Timer 型別
}

 

/// <summary>
/// 殺視窗
/// </summary>
private void KillMessageBox()
{
// 按照MessageBox的標題,找出Messagebox這個視窗
IntPtr ptr = FindWindow(null, WM_Caption);
if (ptr != IntPtr.Zero) // 此表示只要 ptr 不為空白值的內容時
{
//找到則關閉 MessageBox 視窗
PostMessage(ptr, WM_CLOSE, IntPtr.Zero, IntPtr.Zero);
}
}
}
}

C# MessageBox.Show每隔3秒自動關閉

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.