C# 实现桌面右下角托盘程序指南
2星 需积分: 9 153 浏览量
更新于2024-10-07
收藏 2KB TXT 举报
"这篇文章主要介绍了如何在C#中创建一个能在任务栏右下角显示的托盘程序。通过使用NotifyIcon类,我们可以实现程序图标在系统托盘区的显示,并添加菜单项进行交互操作。"
在C#编程中,创建一个位于任务栏右下角的托盘程序涉及到对Windows Forms的NotifyIcon控件的使用。NotifyIcon控件允许开发者将应用程序的状态图标隐藏到系统托盘区域,同时还能提供与用户的交互功能,如右键菜单等。
首先,我们需要引入必要的命名空间:
```csharp
using System;
using System.Windows.Forms;
```
接着,在窗体类(如`Form1`)中定义和初始化NotifyIcon对象。在构造函数中,我们创建一个Icon对象,用于设置托盘图标的外观,然后创建一个ContextMenuStrip对象,用于处理右键点击时显示的菜单项:
```csharp
public partial class Form1 : Form
{
private Icon mNetTrayIcon = new Icon("icon.ico"); // 使用本地"icon.ico"文件作为图标
private ContextMenuStrip notifyiconMnu;
public Form1()
{
InitializeComponent();
InitializeNotifyicon();
}
private void InitializeNotifyicon()
{
// 创建菜单项
MenuItem[] mnuItms = new MenuItem[3];
mnuItms[0] = new MenuItem();
mnuItms[0].Text = "显示程序";
mnuItms[0].Click += new EventHandler(showForm);
mnuItms[1] = new MenuItem("-"); // 分隔线
mnuItms[2] = new MenuItem();
mnuItms[2].Text = "退出程序";
mnuItms[2].Click += new EventHandler(ExitSelect);
mnuItms[2].DefaultItem = true;
// 初始化ContextMenuStrip并设置菜单项
notifyiconMnu = new ContextMenuStrip(mnuItms);
// 设置托盘图标、文字和可见性
TrayIcon.Visible = false;
TrayIcon.Icon = mNetTrayIcon;
TrayIcon.Text = "示例程序";
TrayIcon.ContextMenuStrip = notifyiconMnu;
}
}
```
`showForm`方法用于在用户点击“显示程序”菜单项时,恢复窗体的显示:
```csharp
private void showForm(object o, EventArgs args)
{
this.Show();
this.WindowState = FormWindowState.Normal;
TrayIcon.Visible = false; // 隐藏托盘图标
this.ShowInTaskbar = true; // 显示在任务栏
}
```
`ExitSelect`方法处理“退出程序”菜单项的点击事件,关闭窗体并结束应用程序:
```csharp
private void ExitSelect(object o, EventArgs args)
{
this.TrayIcon.Visible = false;
this.Close();
this.Dispose();
Application.Exit();
}
```
此外,还可以在窗体大小改变的事件处理程序中处理窗口最小化的情况,确保窗口最小化时能正确显示在托盘区:
```csharp
private void Form1_SizeChanged(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
TrayIcon.Visible = true; // 当窗口最小化时,显示托盘图标
this.ShowInTaskbar = false; // 隐藏任务栏图标
}
}
```
通过创建和配置NotifyIcon实例,结合适当的事件处理,我们可以实现C#中的右下角托盘程序,让程序在不使用时可以安静地隐藏在系统托盘区域,通过右键菜单进行交互。
2008-11-15 上传
125 浏览量
2011-04-28 上传
132 浏览量
2013-01-17 上传
点击了解资源详情
2014-10-28 上传
2024-03-15 上传
2020-08-30 上传
IT乐手
- 粉丝: 229
- 资源: 104
最新资源
- java版商城源码-Offline-Shopping-Online-Payment:OSOP是我们在USICT组织的2017年UHack的“黑
- 07.酒店管理系统.zip
- androidthings-oledDisplayText:使用Android Things在OLED屏幕上显示文本
- integrations-extras:社区为Datadog Agent开发了集成和插件
- netflix-clone:Recria接口da netflix
- szakdolgozat:一维对流扩散方程求解器
- 【QGIS跨平台编译】之【MiniZip跨平台编译】:源码及跨平台编译工程(支撑QGIS跨平台编译,以及二次研发)
- arcgis图标大全.zip
- bluelink-scraper:收集Bluelink数据并将其推入
- java版商城源码-NeuralDater-ACL-2018:使用图卷积网络约会文档
- 12【V3选修】Vim编辑器操作及插件使用.zip
- comp3421_midProj
- rainwater.zip
- java版商城源码-machi-koro:我在沃福德学院的高级顶点项目,其中我们创建了流行桌面游戏MachiKoro的完全可玩的控制台版本
- AVR单片机入门教程.zip
- Jude_Harry_Project:这是我们即将着手的项目的存储库