C#实现窗口最小化到系统托盘

转载 2008年09月28日 21:42:00
 
C#编写最小化时隐藏为任务栏图标的 Window appllication.

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#实现窗口最小化到系统托盘 关键字:C# 最小化 托盘 原文:http://www.cnblogs.com/txw1958/archive/2012/12/17/csharp-min...
  • autumn20080101
  • autumn20080101
  • 2016年11月25日 09:24
  • 192

C#实现窗口最小化到系统托盘

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin...
  • u012988972
  • u012988972
  • 2015年04月19日 15:33
  • 291

C#实现窗口最小化到系统托盘

C#实现窗口最小化到系统托盘 C#编写最小化时隐藏为任务栏图标的 Window appllication. 1.设置WinForm窗体属性showinTask=false 2...
  • yinbucheng
  • yinbucheng
  • 2017年02月21日 14:32
  • 1412

VB6.0实现点击窗体的系统最小化或关闭按钮将窗体最小化到系统托盘区

托盘,亦即程序最小化后程序图标隐藏到屏幕右下角的任务栏里。这种最小化方法比普通的最小化节约空间,因此备受欢迎,很多软件都具有这样的功能。在VB中,可用API函数来实现托盘功能,但比较复杂,不太好操作。...
  • michelson1
  • michelson1
  • 2014年03月03日 16:51
  • 2850

C#实现WinForm窗口最小化到系统托盘

C#编写最小化时隐藏为任务栏图标的 Window appllication. 1.设置WinForm窗体属性showinTask=false 2.加notifyicon控件notifyIcon...
  • winseer
  • winseer
  • 2013年01月22日 14:55
  • 232

Qt中如何使窗口隐藏/最小化到托盘

托盘是什么?这个就不用在多说了!而Qt中如何实现自己的托盘功能,Qt自带的demo也很明了,这里我们就来实现自己的一个托盘。。。   void TrayMenu::createActions()...
  • bzhxuexi
  • bzhxuexi
  • 2014年04月30日 14:05
  • 4261

c#最小化指定应用程序+判断激活并最大化指定应用程序

c#最小化指定应用程序+判断激活并最大化指定应用程序
  • yangyisen0713
  • yangyisen0713
  • 2016年11月25日 21:12
  • 1327

程序最小化到托盘

转自:http://zf0026.blog.163.com/blog/static/178262113201121711302641/ 对原文的补充,最为新手,需要知道如何定义消息,响应WM_SIZ...
  • u011365452
  • u011365452
  • 2013年09月05日 17:34
  • 1609

C++ 最小化到托盘

#define WM_SHOWTASK (WM_USER + 1) void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((n...
  • CHIHUN_LOVE
  • CHIHUN_LOVE
  • 2016年12月30日 16:33
  • 955

VC实现窗口最小化至托盘

所谓的“托盘”,在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分。在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放到托盘区。 一 、原理 ...
  • jiangqin115
  • jiangqin115
  • 2014年11月18日 19:30
  • 1183
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#实现窗口最小化到系统托盘
举报原因:
原因补充:

(最多只允许输入30个字)