運行winform窗體,我們是怎樣隱藏的呢?
例子:
1)創建簡單winform窗體
2)編寫隱藏窗體程序的代碼
3)效果演示
1)創建一個簡單的winform窗體MainForm,
這樣運行后,在任務欄能看到窗體,怎樣隱藏,在load事件中加上
//窗體最小化顯示
this.WindowState = FormWindowState.Minimized;
//不顯示在任務欄中
this.ShowInTaskbar = false;
可以通過設置窗體最小化運行,不顯示在任務欄,但是這樣還是出現一個問題,
在Alt+tab 的視圖窗體可以看到程序,如何解決?
/// <summary>
/// 讓程序不顯示在alt+Tab視圖窗體中
/// </summary>
protected override CreateParams CreateParams
{
get
{
const int WS_EX_APPWINDOW = 0x40000;
const int WS_EX_TOOLWINDOW = 0x80;
CreateParams cp = base.CreateParams;
cp.ExStyle &= (~WS_EX_APPWINDOW); // 不顯示在TaskBar
cp.ExStyle |= WS_EX_TOOLWINDOW; // 不顯示在Alt+Tab
return cp;
}
}
2)編寫隱藏窗體程序的代碼
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 WindowsForms { public partial class FormMain : Form { public FormMain() { InitializeComponent(); } private void FormMain_Load(object sender, EventArgs e) { //窗體最小化顯示 this.WindowState = FormWindowState.Minimized; //不顯示在任務欄中 this.ShowInTaskbar = false; } /// <summary> /// 讓程序不顯示在alt+Tab視圖窗體中 /// </summary> protected override CreateParams CreateParams { get { const int WS_EX_APPWINDOW = 0x40000; const int WS_EX_TOOLWINDOW = 0x80; CreateParams cp = base.CreateParams; cp.ExStyle &= (~WS_EX_APPWINDOW); // 不顯示在TaskBar cp.ExStyle |= WS_EX_TOOLWINDOW; // 不顯示在Alt+Tab return cp; } } } }
3)演示效果
3.1)只設置最小化、不在任務欄顯示
按Alt+Tab可以看到窗體程序
3.2) 設置程序不在ALT+Tab視圖窗體中顯示
3.3)程序在后台運行(任務管理器)
參考網址來源:
http://bbs.csdn.net/topics/392055218?page=1