C#系统托盘功能实现

  • 功能
  • 知识点
    • notifyicon控件
    • ContexMenuStrip控件
    • SizeChanged
    • windowState
    • DialogResult类
    • Application类
    • MessageBoxButton
  • 实现步骤
    • 画面组态
    • 代码编写

功能

软件在单击关闭按钮时,并不会退出进程,而是在任务栏显示一个系统托盘图标

知识点

notifyicon控件

命名空间:System.Windows.Forms
程序集:System.Windows.Forms.dll

指定可在通知区域创建图标的组件。 此类不能被继承。

通知区域中的图标是计算机后台运行的进程的快捷方式,例如病毒防护程序或音量控制。 这些进程不附带自己的用户界面。 该 NotifyIcon 类提供了一种在此功能中编程的方法。 该 Icon 属性定义显示在通知区域中的图标。 图标的弹出菜单使用 ContextMenu 属性进行寻址。 该 Text 属性分配工具提示文本。 为了使图标显示在通知区域中, Visible 属性必须设置为 true。

ContexMenuStrip控件

命名空间:System.Windows.Forms
程序集:System.Windows.Forms.dll

表示快捷菜单

ContextMenuStrip 替换了 ContextMenu。 可以将 a ContextMenuStrip 与任何控件相关联,右键单击会自动显示快捷菜单。 可以使用 Show 方法以编程方式显示 ContextMenuStrip。 ContextMenuStrip 支持可取消的 Opening 和 Closing 事件来处理动态填充和多单击情形。 ContextMenuStrip 支持图像、菜单项检查状态、文本、访问键、快捷方式和级联菜单。

SizeChanged

每当控件的大小发生更改时,调用与控件事件关联的 SizeChanged 事件处理程序。. 此事件处理程序显示一个消息框,指示控件的大小已更改。

windowState

命名空间:System.Windows.Forms
程序集:System.Windows.Forms.dll

获取或设置一个值,该值指示窗体是最小化(Minimized)、最大化(Maximized)还是正常(Normal)。

DialogResult类

命名空间:System.Windows.Forms
程序集:System.Windows.Forms.dll

指定标识符以指示对话框的返回值。

属性 枚举值 说明
Abort 3 对话框的返回值是 Abort(通常从标签为“中止”的按钮发送)。
Cancel 2 对话框的返回值是 Cancel(通常从标签为“取消”的按钮发送)。
Continue 11 对话框返回值是“继续” (通常从标记为“继续”) 的按钮发送。
Ignore 5 对话框的返回值是 Ignore(通常从标签为“忽略”的按钮发送)。
No 7 对话框的返回值是 No(通常从标签为“否”的按钮发送)。
None 0 从对话框返回了 Nothing。 这表明有模式对话框继续运行。
OK 1 对话框的返回值是 OK(通常从标签为“确定”的按钮发送)。
Retry 4 对话框的返回值是 Retry(通常从标签为“重试”的按钮发送)。
TryAgain 10 对话框返回值是“重试” (通常从标记为“重试”的按钮发送) 。
Yes 6 对话框的返回值是 Yes(通常从标签为“是”的按钮发送)。
public void DialogResultFuc()
{string message = "今天你摸鱼了吗";string caption = "热爱工作,热爱生活";MessageBoxButton buttons = MessageBoxButton.YesNo;DialogResult result;result = Message.Show(this,message,caption,buttons);if(result == DialogResult.Yes){this.Close();}}

Application类

命名空间:System.Windows
程序集:PresentationFramework.dll

封装 Windows Presentation Foundation 应用程序。

Application 是封装 WPF 应用程序特定功能的类,包括:

应用程序生存期:Activated、、Current、、RunSessionEndingDeactivatedExitShutdownDispatcherUnhandledException、。 StartupShutdownMode

应用程序范围窗口、属性和资源管理:FindResource、、GetContentStream、、GetResourceStream、LoadComponent、MainWindowProperties、Resources、StartupUri。 Windows

命令行参数和退出代码处理:Application.Startup、、Application.ExitApplication.Shutdown。

导航:FragmentNavigation、、LoadCompleted、Navigated、NavigationProgressNavigating、NavigationStoppedNavigationFailed、、SetCookie。 GetCookie

MessageBoxButton

命名空间:System.Windows
程序集:PresentationFramework.dll

指定显示在消息框上的按钮。 用作 Show 方法的参数。

字段 枚举值 说明
OK 0 消息框显示“确定”按钮。
OKCancel 1 消息框显示“确定”和“取消”按钮。
YesNo 4 消息框显示“是”和“否”按钮。
YesNoCancel 3 消息框显示“是”、“否”和“取消”按钮。

实现步骤

画面组态

添加控件notificon。

将notiicon控件属性中contextMenuStrip修改为ContentMenuStrip控件的Name属性值。

在属性值ICon修改自己相应的图标,格式为.icon

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GTkzAMs4-1658760546997)(C:\Users\buluw\AppData\Roaming\Typora\typora-user-images\image-20220725223503629.png)]

添加控件ContentMeunStrip控件

修改控件的属性集合值,增加退出主界面显示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2XVynZqo-1658760546998)(C:\Users\buluw\AppData\Roaming\Typora\typora-user-images\image-20220725223827677.png)]

代码编写

根据窗体不同变化,修改notiicon的可见性

根据notificon事件,窗体变化

操作快捷菜单事件,窗体随之变化

private void Form1_SizeChanged(object sender, EventArgs e){if (this.WindowState == FormWindowState.Normal){notifyIcon1.Visible = false;}else if (this.WindowState == FormWindowState.Minimized){this.Hide();notifyIcon1.Visible = true;}}private void notifyIcon1_DoubleClick(object sender, EventArgs e){this.Show();this.WindowState = FormWindowState.Normal;}private void 主界面显示ToolStripMenuItem_Click(object sender, EventArgs e){notifyIcon1_DoubleClick(null, null);}private void 退出ToolStripMenuItem_Click(object sender, EventArgs e){DialogResult result = MessageBox.Show("确定退出吗?", "退出",MessageBoxButtons.OKCancel, MessageBoxIcon.Question);if (result == DialogResult.OK)Application.ExitThread();elsethis.WindowState = FormWindowState.Minimized;}

C#系统托盘功能实现相关推荐

  1. 采用QSystemTrayIcon实现系统托盘功能

    在应用程序关闭的时候最小化到系统托盘,想必大家都见过这个功能.如何用QSystemTrayIcon实现系统托盘功能呢?QT的源码里面有详细的例子,但是代码比较繁琐.我根据自己的经验将主要实现过程作简化 ...

  2. VC++实现系统托盘功能(附源码)

      VC++开发常用功能一系列文章 (欢迎订阅,持续更新...) Windows桌面的系统托盘位于任务栏的右侧,即Windows桌面的右下方,它常用来显示一些系统的状态.如系统时间,音量控制以及其他的 ...

  3. qt修改程序图标名称_解决Qt应用程序添加icon图标,修改窗口图标以及添加系统托盘问题...

    一.Qt应用程序添加icon图标的方法: 首先,我们需要先准备两个文件,一个是icon图标,另一个是rc文件,我分别命名为"myApp.rc"和"soft.ico&quo ...

  4. Delphi 7下最小化到系统托盘

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 在Del ...

  5. 将Windows Live Mail最小化到Windows 7中的系统托盘

    Are you frustrated that you can not minimize Windows Live Mail to the system tray in Windows 7? With ...

  6. 半小时玩转QT桌面系统托盘(含托盘消息)

    桌面托盘是常用的功能,对于QT,为桌面托盘提供了很多接口可以使用,满足开发中遇到的托盘相关的功能. 以下文章介绍QT的桌面系统托盘功能的开发实例. 系统托盘:用户在最小化程序的时候并没有真正关闭程序, ...

  7. MFC系统托盘的实现

    通常电脑里边的软件,当你打开后会在电脑最右下角的任务栏上生成一个系统托盘,当你点击最小化或者点击关闭按钮后,若想恢复窗口,可以左键双击或者单机这个系统图标,同时鼠标右键点击,又会有其他的菜单弹出,比如 ...

  8. 刷新系统托盘(清除死掉的图标)修正版

    刷新系统托盘(清除死掉的图标)修正版 2009-08-06 18:50:06|  分类: Delphi |  标签: |字号大中小 订阅 type  TOSVersion = (osUnknown, ...

  9. 服务程序增加系统托盘

    服务程序增加系统托盘 用Delphi创建服务程序作者:未知 文章来源:岁月联盟 Windows 2000/XP和2003等支持一种叫做"服务程序"的东西.程序作为服务启动有以下几个 ...

最新文章

  1. 查处的数据如何乱序_老司机总结常用镜像方法,让镜像数据更加可靠
  2. POJ - 3476 A Game with Colored Balls---优先队列+链表(用数组模拟)
  3. FD.io/VPP — VPP 的实现原理解析
  4. nginx 转发_除了转发和负载均衡,nginx又一次让他玩出新高度
  5. 如何监视SQL Server索引的总大小
  6. 使用 jquery 的 上传文件插件 uploadify 3.1 配合 java 来做一个简单的文件上次功能。并且在界面上有radio 的选择内容也要上传...
  7. Microsoft SQL Server 2008 R2官方中文版(SQL2008下载).rar
  8. C#常用 API函数大全
  9. 深度理解Powell优化算法
  10. SparkSQL Analyzed实例源码解析
  11. 为什么10M、20M的宽带只有大约1、2M的下载速度——网速KB/s与Kbps(Kb/s)的区别
  12. python画正方形-用python画一个正方形
  13. 剑指Offer对答如流系列 - 把数字翻译成字符串
  14. 生活当中调整时钟时间背后发生的事情
  15. 2020年千兆路由器推荐 数码宅男来带路 赶紧M
  16. Win10安装打印机驱动搜索不到打印机
  17. android 显示进度,progressdialog-如何在Android中显示进度对话框?
  18. 射频基础——射频同轴线缆介绍
  19. Python 异步库 asyncio、aiohttp
  20. 好久都没去过电影院了!用Python网络爬虫来看看最近电影院都有哪些上映的电影

热门文章

  1. wince6 qt mysql_用Qt Creator开发Windows的简单计算机的程序
  2. 自动光感大臂灯触摸芯片-DLT8SA15B-杰力科创
  3. 保本投资法:不跌的股票
  4. 使用catlog管理rman
  5. 航空电子设备中敏感电子设备的RTCA/DO 160测试指南
  6. 2022-2023 科学道德与学风建设(chao星) 自我学习记录日志一(1-3)答案
  7. 宝钢三季度宝钢专题大家说
  8. 论文的文献类别有哪些?
  9. Wise Care 365 PRO v5.5.4.549 绿色特别版
  10. MDuiLib界面编辑器中的图片编辑功能相关