C#基础温习(10):C#实现托盘功能
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Threading;
using System.Windows.Forms;namespace Tuopan
{class Program{static void Main(string[] args){InitNotifyIcon();new Form().ShowDialog();}/// <summary>/// 声明通知静态实体/// </summary>public static readonly NotifyIcon NotifyIcon = new NotifyIcon();/// <summary>/// 初始化通知栏图标。/// </summary>private static void InitNotifyIcon(){List<string> menuItems = new List<string>{MenuItems.CONFIG_MENU,MenuItems.MONITOR_MENU,MenuItems.INIT_MENU,MenuItems.EXIT_MENU};ContextMenu notifyIconContextMenu = new ContextMenu();//生成菜单项并添加事件foreach (MenuItem menuItem in menuItems.Select(item => new MenuItem(item))){menuItem.Click += MenuItem_Click;notifyIconContextMenu.MenuItems.Add(menuItem);}NotifyIcon.Text = "托盘demo程序";NotifyIcon.BalloonTipShown += NotifyIcon_BalloonTipShown;NotifyIcon.Icon = new Icon("3.ico");NotifyIcon.BalloonTipIcon = ToolTipIcon.Info;NotifyIcon.BalloonTipText = "服务运行中……";NotifyIcon.BalloonTipTitle = "托盘demo程序";NotifyIcon.Visible = true;NotifyIcon.ShowBalloonTip(2000);NotifyIcon.ContextMenu = notifyIconContextMenu;}private static void NotifyIcon_BalloonTipShown(object sender, EventArgs e){NotifyIcon.Text = "托盘demo程序";}/// <summary>/// 通知栏图标的菜单功能方法。/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private static void MenuItem_Click(object sender, EventArgs e){MenuItem menuItem = sender as MenuItem;if (menuItem == null) return;switch (menuItem.Text){case MenuItems.CONFIG_MENU:menuItem.Checked = true;FormShow("配置界面显示");menuItem.Checked = false;break;case MenuItems.INIT_MENU:menuItem.Checked = true;FormShow("初始化界面显示");menuItem.Checked = false;break;case MenuItems.MONITOR_MENU:menuItem.Checked = true;FormShow("监控界面显示");menuItem.Checked = false;break;case MenuItems.EXIT_MENU:Exit();break;}}private static void FormShow(string text){Form myform=new Form();myform.Text = text;myform.ShowDialog();}/// <summary>/// 退出程序/// </summary>private static void Exit(){if (NotifyIcon != null){NotifyIcon.Visible = false;NotifyIcon.Dispose();}Thread.Sleep(500);Environment.Exit(0);}}/// <summary>/// 常量类/// </summary>public static class MenuItems{#region 通告图标菜单项public const string CONFIG_MENU = "配置界面";public const string MONITOR_MENU = "监控界面";public const string INIT_MENU = "初始化界面";public const string EXIT_MENU = "退出程序";#endregion 通告图标菜单项}
}
运行结果: [caption id="attachment_873" align="alignnone" width="225"] 我的托盘[/caption] [caption id="attachment_874" align="alignnone" width="681"] 主界面[/caption] 托盘主界面上的窗体是通过右键单击托盘弹出来的对话框。 还是一句话,经过敲上面的代码能够实现一个托盘的程序,但是上面的每一句代码你都懂吗?如果确认懂了自己写一写看看能否写出来,不是实现了,运行了就明白了。
转载于:https://www.cnblogs.com/vsdot/archive/2013/05/08/3263369.html
C#基础温习(10):C#实现托盘功能相关推荐
- 计算机绘图图层基本线性,计算机绘图基础-第10章 尺寸标注.ppt
计算机绘图基础-第10章 尺寸标注 第10章 尺 寸 标 注 10.1 尺寸标注基础 10.1.1 尺寸标注的规则 10.1.2 尺寸的组成 10.1.3 尺寸标注的基本类型 AutoCAD提供了四种 ...
- Windows 10 Version 2004 新功能盘点
Windows 10 Version 2004 新功能盘点 Windows 10 Version 2004功能更新即将登场,但目前仍没有敲定具体的名称.目前微软已经发布了ISO镜像,意味着微软有望近期 ...
- C#系统托盘功能实现
C#系统托盘功能实现 功能 知识点 notifyicon控件 ContexMenuStrip控件 SizeChanged windowState DialogResult类 Application类 ...
- 短信系统后台基础版本搭建服务器环境和功能说明
短信系统基础版本数据库搭建和后台功能介绍 短信系统后台基础版本搭建服务器环境和功能 此版本为短信系统基础版本 一:服务器环境篇 1.1:服务器操作系统 使用windows2016 或者是windows ...
- 为指定的职工在原工资的基础上长10%的工资,并打印涨工资前和涨工资后的工资
/* 为指定的职工在原工资的基础上长10%的工资,并打印涨工资前和涨工资后的工资 select sal into psal from emp where empno=? update emp set ...
- 电子商务基础课件(10.25更新)
电子商务基础课件(10.25更新) 电子商务基础课件 unit01-01-1.rar unit01-01-2.rar unit03-01.rar unit04-01.rar unit05-01.rar ...
- C# 10 的五大新功能
作者 | Matthew MacDonald 译者 | 弯月 责编 | 欧阳姝黎 出品 | CSDN(ID:CSDNnews) 以下为译文: C# 的 GitHub 页面上记载了一长串诱人的想 ...
- 1177: 按要求排序(指针专题)_L2算法基础第10课 排序中
L2-算法基础-第10课 排序中 排序 归并排序 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法.该算法是采用分治法(Divide and Conquer)的一个非常典型的应用 ...
- 抢先看! Lumion 10 正式发布之核心功能预览
昨晚, Lumion 10发布了! 小编带大家一同预览 Lumion 10 正式发布之核心功能 没有什么比案例来的更为直观 这个不到3分钟的新功能视频预览 足以呈现全新Lumion10.0带来的精彩 ...
- ArcGIS二次开发基础教程(10):三维分析
ArcGIS二次开发基础教程(10):三维分析 坡度分析 请务必学会使用帮助文档!!! //DEM数据的坡度分析 将分析结果添加到地图上 //首先获取DEM数据,方法有很多例如从个人地理数据库获取,也 ...
最新文章
- HDU 1273 漫步森林
- 【NLP】深度学习文本分类|模型代码技巧
- linux mysql date 格式_关于MySQL中的三种日期类型
- 面试必会系列 - 5.1 网络BIO、NIO、epoll,同步/异步模型、阻塞/非阻塞模型,你能分清吗?
- web.config配置数据库连接
- Compound Words UVA - 10391(c++用法中substr函数用法+map实现)
- mysql_根据身份证号识别性别、年龄、所在省份
- tensorflow框架
- 保存tensorboard的损失曲线为图片
- Python+tkinter+sqlite3模拟通信录管理系统
- Autorelease Pool
- A NEW THREE-STAGE CURRICULUM LEARNING APPROACH TO DEEP NETWORK BASED LIVER TUMOR SEGMENTATION
- 阿里图标库(iconfont)下载图标使用图标技巧(保姆级图文)
- 借用计算机简谱,电脑编辑打印简谱之路怎么走——“电脑简谱助手”操作系列谈之二...
- PHP获取中国所有的大学,全国300所大学的BBS论坛.doc
- HTML5 canvas 中的 fillstyle fillrect strokeStyle strokeRect fill stroke rect 的简单理解
- 让华为小米抱团 统一推送联盟究竟是何方神圣?
- Matplotlib:设置坐标轴范围,刻度,位置,自定义刻度名称,添加数据标签
- Ubuntu12.10 使用JLink连接开发板用arm-gdb调试ARM程序
- node.js常用模块