C# WinForm窗口最小化到系统托盘
C# WinForm窗口最小化到系统托盘
发布时间:2016-12-28 来源:查字典编辑
摘要:1.设置WinForm窗体属性showinTask=false2.加notifyicon控件notifyIcon1,为控件notifyIco...

1.设置WinForm窗体属性showinTask=false

2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标。

3.添加窗体最小化事件(首先需要添加事件引用):

复制代码 代码如下:

this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged);

//上面一行是主窗体InitializeComponent()方法中需要添加的引用

private void Form1_SizeChanged(object sender, EventArgs e)

{

if(this.WindowState == FormWindowState.Minimized)

{

this.Hide();

this.notifyIcon1.Visible=true;

}

}

4.添加点击图标事件(首先需要添加事件引用):

private void notifyIcon1_Click(object sender, EventArgs e)

{

this.Visible = true;

this.WindowState = FormWindowState.Normal;

this.notifyIcon1.Visible = false;

}

5.可以给notifyIcon添加右键菜单:

主窗体中拖入一个ContextMenu控件NicontextMenu,点中控件,在上下文菜单中添加菜单,notifyIcon1的ContextMenu行为中选中NicontextMenu 作为上下文菜单。

复制代码 代码如下:

this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);

this.NicontextMenu = new System.Windows.Forms.ContextMenu();

this.menuItem_Hide = new System.Windows.Forms.MenuItem();

this.menuItem_Show = new System.Windows.Forms.MenuItem();

this.menuItem_Aubot = new System.Windows.Forms.MenuItem();

this.menuItem_Exit = new System.Windows.Forms.MenuItem();

this.notifyIcon1.ContextMenu = this.NicontextMenu;

this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject( "NotifyIcon.Icon ")));

this.notifyIcon1.Text = " ";

this.notifyIcon1.Visible = true;

this.notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick);

this.notifyIcon1.Click += new System.EventHandler(this.notifyIcon1_Click);

this.NicontextMenu.MenuItems.AddRange(

new System.Windows.Forms.MenuItem[]

{

this.menuItem_Hide,

this.menuItem_Show,

this.menuItem_Aubot,

this.menuItem_Exit

}

);

//

// menuItem_Hide

//

this.menuItem_Hide.Index = 0;

this.menuItem_Hide.Text = "隐藏 ";

this.menuItem_Hide.Click += new System.EventHandler(this.menuItem_Hide_Click);

//

// menuItem_Show

//

this.menuItem_Show.Index = 1;

this.menuItem_Show.Text = "显示 ";

this.menuItem_Show.Click += new System.EventHandler(this.menuItem_Show_Click);

//

// menuItem_Aubot

//

this.menuItem_Aubot.Index = 2;

this.menuItem_Aubot.Text = "关于 ";

this.menuItem_Aubot.Click += new System.EventHandler(this.menuItem_Aubot_Click);

//

// menuItem_Exit

//

this.menuItem_Exit.Index = 3;

this.menuItem_Exit.Text = "退出 ";

this.menuItem_Exit.Click += new System.EventHandler(this.menuItem_Exit_Click);

protected override void OnClosing(CancelEventArgs e)

{

this.ShowInTaskbar = false;

this.WindowState = FormWindowState.Minimized;

e.Cancel = true;

}

protected override void OnClosing(CancelEventArgs e)

{

//this.ShowInTaskbar = false;

this.WindowState = FormWindowState.Minimized;

e.Cancel = true;

}

private void CloseCtiServer()

{

timer.Enabled = false;

DJ160API.DisableCard();

this.NotifyIcon.Visible = false;

this.Close();

this.Dispose();

Application.Exit();

}

private void HideCtiServer()

{

this.Hide();

}

private void ShowCtiServer()

{

this.Show();

this.WindowState = FormWindowState.Normal;

this.Activate();

}

private void CtiManiForm_Closing(object sender, System.ComponentModel.CancelEventArgs e)

{

this.CloseCtiServer();

}

private void menuItem_Show_Click(object sender, System.EventArgs e)

{

this.ShowCtiServer();

}

private void menuItem_Aubot_Click(object sender, System.EventArgs e)

{

}

private void menuItem_Exit_Click(object sender, System.EventArgs e)

{

this.CloseCtiServer();

}

private void menuItem_Hide_Click(object sender, System.EventArgs e)

{

this.HideCtiServer();

}

private void CtiManiForm_SizeChanged(object sender, System.EventArgs e)

{

if(this.WindowState == FormWindowState.Minimized)

{

this.HideCtiServer();

}

}

private void notifyIcon1_DoubleClick(object sender,System.EventArgs e)

{

this.ShowCtiServer();

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类