转载:http://www.cnblogs.com/dooroo/archive/2012/09/09/2677315.html
winform托盘的使用主要用到了两个控件notifyIcon和contextMenuStrip
(一)notifyIcon的使用
1)先在工具箱中拖到主窗体中,直接在属性icon中选择一个ICO图标作为托盘图标,并把主窗口的属性ShowInTaskbar是否出现在任务栏中设置为假
2)添加以下事件和语句
private void Form1_SizeChanged(object sender, EventArgs e)
{//窗口尺寸改变事件:即点最小化时(最好窗口是固定大小)
if (this.WindowState == FormWindowState.Minimized)
{
this.Hide();//隐藏主窗口
this.notifyIcon1.Visible = true;//托盘为真
}
}
//双击托盘,窗口恢复正常
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
this.Visible = true;
this.WindowState = FormWindowState.Normal;
}
3)这里涉及到如果窗口有关闭按钮(最好是自己做关闭按钮),把关闭按钮改为最小化
protected override void WndProc(ref Message m)
{//重装API中的关闭
const int WM_SYSCOMMAND = 0x0112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)
{//捕捉关闭窗体消息
this.WindowState = FormWindowState.Minimized;
return;
}
base.WndProc(ref m);
}
如果是自己做的关闭按钮,直接用第2)步的方法即可.
(二)为了让托盘图标有右键菜单功能,需要添加contextMenuStrip
1)从工具箱中拖contextMenuStrip控件到主窗体
2)为contextMenuStrip设置菜单项
3)为notifyIcon属性中关联contextMenuStrip
4)假设双击托盘或托盘菜单中"显示主窗口":
//双击托盘,窗口恢复正常
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
this.Visible = true;
this.WindowState = FormWindowState.Normal;
}
//菜单:显示主窗口
private void 主窗口_Click(object sender, EventArgs e)
{
this.Visible = true;
this.WindowState = FormWindowState.Normal;
}
//菜单:退出功能
private void 退出_Click(object sender, EventArgs e)
{
this.Close();
}
另:如果想加一个关闭窗口时提示:确定退出?"是"则退出,"否"则最小化,并提供一个checkbox记住以后都按相同的操作,还会有一点麻烦,下次再研究.
if (MessageBox.Show("确定退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
{
Application.Exit();
}
相关推荐
VS2017 .Net Framework 2.5 开发, yong 在WindowsForm下使用NotifyIcon、ContextMenuStrip,Timer 实现任务栏托盘菜单隐藏,显示及闪烁效果。
在IT领域,尤其是在Windows应用程序开发中,"带菜单的任务栏托盘图标"是一个常见的功能,它允许用户在系统托盘区域与程序进行交互。本文将深入探讨如何使用C#编程语言实现这一特性,并针对初学者提供指导。 首先,...
这个对象将负责在任务栏托盘区显示图标以及弹出气泡提示。例如: ```csharp NotifyIcon notifyIcon = new NotifyIcon(); notifyIcon.Icon = Properties.Resources.MyIcon; // 这里的MyIcon是你准备的图标资源 ``` ...
以下是C#中禁用任务栏的完整代码示例: ```csharp using System; using System.Runtime.InteropServices; public class Program { // 定义Windows API函数 [DllImport("user32.dll")] private static extern ...
"C#最小化至任务栏托盘程序(加笔记)"这个标题揭示了我们将讨论如何实现这样的功能,并且通过"加笔记"我们可以理解,这里可能还包含了关于代码注释或学习心得的分享。 首先,我们需要了解Windows Forms(WinForms)...
在本教程中,我们将深入探讨如何使用编程语言(如C#、C++或Java)实现一个仿制的任务栏托盘菜单。 首先,我们需要了解任务栏托盘菜单的基本结构。它通常由一个主图标和多个关联的菜单项组成。当用户鼠标悬停在图标...
任务栏是用户界面的一个关键部分,它包含了系统托盘、开始按钮、运行按钮以及打开应用程序的最小化窗口等。任务栏的状态通常指的是位于任务栏上的应用程序图标及其相关的通知和操作。 在C#中,我们可以利用`System....
本篇将详细讲解如何使用C#语言和Winform框架来实现任务栏托盘菜单。 首先,任务栏托盘菜单是Windows应用程序中的一个重要组成部分,它可以隐藏主窗口,使得应用在后台运行,同时在任务栏通知区域保持可见。这通常...
在C#编程中,托盘区域(Tray Area)通常指的是系统任务栏右下角的“通知区域”,这里会显示各种应用程序的图标。当应用程序在后台运行或最小化时,这些图标尤为关键,它们提供了与应用程序交互的方式。本文将详细...
1. **System.Windows.Forms.NotifyIcon类**:这是C#中用于创建和管理任务栏托盘图标的主要类。在tray.cs中,可以看到它被用来实例化一个托盘图标对象,并设置图标(如Tray.ico)以及与之相关的右键菜单。 2. **隐藏...
本话题聚焦于`C#`中的一个特定特性:系统托盘(System Tray)和任务栏通知区(Notification Area),以及如何实现一个具有右键菜单功能的窗体,使得关闭窗体时不是彻底关闭,而是将其隐藏到任务栏通知区内。...
本项目“带菜单的任务栏托盘图标C#”提供了一个实现这一功能的源代码示例,旨在提升应用程序的用户界面美感。 在C#中,我们可以使用`System.Windows.Forms.NotifyIcon`类来创建和管理任务栏托盘图标。这个类允许...
在Windows操作系统中,任务栏是用户界面的重要组成部分,它提供了快速访问常用应用程序、打开的窗口以及系统托盘区域的功能。然而,在某些特定情况下,比如进行全屏演示或想要优化屏幕空间时,用户可能会希望暂时...
在C#编程中,开发系统级应用程序时,我们经常需要实现一些特定的用户界面交互,例如窗体的最小化操作以及在任务栏和系统托盘区的管理。本主题主要探讨的是如何使C#窗体在用户点击最小化按钮时,不仅将其隐藏,而且将...
通过以上代码片段可以看出,作者使用了C#结合Window API实现了任务栏托盘图标及其弹出式菜单的功能。该示例涵盖了菜单项的添加、菜单条目的动态修改以及对鼠标点击和命令消息的响应处理等关键部分。这对于需要在...
"C#任务栏滑出式提醒框无乱码汉化版代码"就是一个针对此类需求的解决方案。这个项目提供了一个经过汉化处理的提醒框控件,它能够在任务栏底部滑出,显示信息,而且不会出现常见的字符编码问题,确保了中文字符的正确...
然而,有时候可能会遇到一些异常情况,比如你所描述的问题:“结束一个托盘程序进程后,但是Windows任务栏托盘区的图标还在,鼠标移上去后图标就消失了。”这种情况可能是由于以下几个原因: 1. **进程未完全关闭**...
在 C# 中隐藏为任务栏图标是指将窗体最小化时隐藏任务栏图标,而不是真正意义上的隐藏窗体,而是将其最小化到系统托盘中,从而达到隐藏的效果。本文将详细介绍如何使用 C# 实现隐藏为任务栏图标的功能。 设置窗体...
在Windows应用程序开发中,任务栏的状态区(也称为系统托盘或通知区域)是一个非常重要的组件,它允许程序在后台运行并提供图标和快速访问功能。C#作为.NET框架的一部分,提供了丰富的API来帮助开发者利用任务栏状态...
标题中的"C#任务栏显示CPU和大小写状态源码"是指使用C#编程语言开发的一款小应用程序,它能够在Windows的任务栏上实时展示计算机的CPU使用率以及键盘的大写锁定(Caps Lock)状态。这种工具对于系统监控和日常使用...