NotifyIcon是一个比较特殊的组件,其特殊之处是既可以把它归类到控件中,也可以把它归类到组件中。这是因为将其拖放到设计窗体后,我们并不能马上看到它的界面(像组件),而是在运行时才能看到它(像控件)。

   通知区域中的图标是一些进程的快捷方式,这些进程在计算机后台运行,如防病毒程序或音量控制。这些进程不会具有自己的用户界面。NotifyIcon 类提供了编写此功能的方法。Icon 属性定义显示在通知区域中的图标。图标的弹出菜单由 ContextMenu 属性确定。Text 属性分配工具提示文本。要在通知区域中显示图标,必须将 Visible 属性设置为 true。     
                                                                                                                                                                                                ------来自百度百科
 
个人理解,就是人物栏通知区域里的图标。
 
前提:各类事件,快捷菜单的执行都是在NotifyIcon设置了Icon基础上的,如果没有设置,
甚至ShowBalloonTip也显示不出来。
 
1.拖控件到窗体上,其实也可以自己定义,主要最后加到窗体上就行。
2.Text属性 ,设置鼠标放在任务栏图标上时显示的文字,这里似乎不能设置样式,估计要重写这个控件才行。
类似qq的效果
 
3.ShowBalloonTip()方法,在任务栏中持续显示具有指定标题、文本和图标的气球通知。
就相当于在系统级给一个通知显示在屏幕右下角,拥有单击,双击,取消事件。
 
4.设置右键菜单项 ,可是是ContextMenuStrip或者ContextMenu,前者的功能比较强大,但后者的优先级高。
其中ContextMenuStrip的Items属性为ToolStripItemCollection,但是ToolStripItem为抽象类,不能创建它的实例,
通过发射工具发现会在内部创建ToolStripButton对象
            ContextMenuStrip cms = new ContextMenuStrip();//创建ContextMenuStrip的实例
cms.Items.Add("个人中心", new Bitmap(@"E:\毕设\UAVGroundStation\WindowsFormsApp\1.jpg"));//比ContextMenu强大的地方,可以为每一项添加图片
notifyIcon2.ContextMenuStrip = cms; MenuItem mt = new MenuItem("打开");//Context的子项
mt.Click += Mt_Click; ContextMenu cm = new ContextMenu(new MenuItem[] { mt });//通过MenuItem数组创建ConatextMenu对象
notifyIcon2.ContextMenu = cm;

它的 子类有:

实测,这些类型都是可以加入到ContextMenuStrip中的,

对于ContextMenuStrip,可以直接从工具箱中拖入,只要NotifyIcon的ContextMenuStrip指向这个ContextMenuStrip实例就行。
 
类型qq:
5.各类事件(测试都是用弹出框测试的,可能存在缺陷和不准确性)
MouseUp:在区域内释放鼠标触发 包括左键、右键、滑轮
MouseClick:在区域内释放鼠标触发 包括左键、右键、滑轮,经过测试是和MouseUp一样。不知有什么特殊情况。
MouseDoubleClick:双击图标触发 包括左键、右键、滑轮
MouseDown:在区域内点击触发 测试显示左键需要点击→释放才触发,右键和滑轮直接触发
MouseMove:从区域内移动鼠标触发,测试显示,弹出框后,点击确定按钮关闭染出框会触发,可能是个bug。
6.建议
调试的时候
最好用后者,前者有时候触发不了,不准确。
 
 
 

毕设(三)NotifyIcon的更多相关文章

  1. 毕设三: spark与phoenix集成插入数据/解析json数组

    需求:将前些日子采集的评论存储到hbase中 思路: 先用fastjson解析评论,然后构造rdd,最后使用spark与phoenix交互,把数据存储到hbase中 部分数据: [ { "r ...

  2. 毕业设计(3)基于MicroPython的篮球计时计分器模型的设计与实现

    前言 我们身边有不少人都喜欢看篮球比赛或者经常打篮球.说起篮球,肯定要提到NBA(美国职业篮球联赛),现在也正是NBA 18-19赛季常规赛的时候.最近3月5日,韦少22分帮助雷霆终结了四连败,哈登4 ...

  3. 【开源毕设】一款精美的家校互动APP分享——爱吖校推 [你关注的,我们才推](持续开源更新3)附高效动态压缩Bitmap

    一.写在前面 爱吖校推如同它的名字一样,是一款校园类信息推送交流平台,这么多的家校互动类软件,你选择了我,这是我的幸运.从第一次在博客园上写博客到现在,我一次一次地提高博文的质量和代码的可读性,都是为 ...

  4. Android自定义View的三种实现方式

    在毕设项目中多处用到自定义控件,一直打算总结一下自定义控件的实现方式,今天就来总结一下吧.在此之前学习了郭霖大神博客上面关于自定义View的几篇博文,感觉受益良多,本文中就参考了其中的一些内容. 总结 ...

  5. 分享一下我的部分毕设内容:基于Windows Phone平台的污染源管理应用

    原文:分享一下我的部分毕设内容:基于Windows Phone平台的污染源管理应用 毕业半年,又总结了一下之前的工作,发现很多知识不复习都忘记了.最近新闻总是报道北京的空气污染,各种雾霾,各种PM X ...

  6. 又到毕业季,尚学堂喊你免费领取100个Java毕设项目(含源码视频),限时一周哦!

    你还在为毕设发愁?不知道该如何命题?不知道从哪里下手?担心毕设过不了影响毕业? 尚学堂首家隆重推出了刷爆朋友圈的毕设100个项目,别说你还没去下载观看!!最最重要的是:免费!免费!免费!而且限时一周! ...

  7. ZigBee毕设

    毕设题目: —————————————————————————————————————————————————————————————————————————————— 基于Zigbee的智能家居监测 ...

  8. 服务器 三 MQTT服务器手机开发

    目的: 实现手机4G网络控制单片机,需要搭建服务器,手机或者各种控制端远程控制. 本教程 1  MQTT服务器硬件模块 2 MQTT服务器电脑搭建 2.1自己搭建 2.2租阿里云服务器 2 MQTT服 ...

  9. C# WinForm中NotifyICon控件的用法

    参考:http://blog.csdn.net/paullink520/article/details/14170021 http://www.cnblogs.com/webman/archive/2 ...

随机推荐

  1. log4erl Configuration

    https://github.com/ahmednawras/log4erl/blob/master/CONFIGURATION.txt Configuration Guide: ========== ...

  2. NOIP模拟 Math - 数学

    题目大意: 给定a,n(\(a \le 1e9, n\le30\)),求有多少\(b(1 \le b \le 2^n)\)满足:\(a^b \equiv b^a(mod 2^n)\). 题目分析: 数 ...

  3. drawText文字绘制知识

    drawText(String text, float x, float y, Paint paint) x,y是基于文字基本线的,而不是android坐标系的左上角. 使用staticLayout进 ...

  4. Linux下安装mysql(1)(CentOS)

    标题是(1)也就是说这次是基础安装,这种方式安装,没有组的创建,权限管理,配置文件更改等,仅仅是最基本的安装,适合第一次在linux上安装mysql的新手 1.准备好安装包(Linux-Generic ...

  5. ant的condition任务

    1.istrue isfalse:断言 真 假 <project name="testCondition"> <target name="test&qu ...

  6. 使用Apache Tiles3.x构建界面布局

    Tiles是一个免费的开源模板Java应用程序的框架.基于复合模式简化的用户界面的构建.对于复杂的网站仍是最简单.最优雅的方式与任何MVC技术一起工作.Struts2对Tiles提供了支持,如今Til ...

  7. Android 如何检索Android设备的唯一ID

    关于本文档 Android的开发者在一些特定情况下都需要知道手机中的唯一设备ID.例如,跟踪应用程序的安装,生成用于复制保护的DRM时需要使用设备的唯一ID.在本文档结尾处提供了作为参考的示例代码片段 ...

  8. DDD实战11 在项目中使用JWT的token 进行授权验证

    步骤: 1.首先要在webapi的管道中 使用认证(Authentication) 2.要在webapi的服务中注册验证条件 代码如下: namespace Dealer.WebApi { publi ...

  9. python3处理不标准json数据

    keywords: python jsonsource: http://txw1958.cnblogs.com/ 先看下JSON的语法规则: JSON 语法规则JSON 语法是 JavaScript ...

  10. [Songqw.Net 基础]WPF实现简单的插件化开发

    原文:[Songqw.Net 基础]WPF实现简单的插件化开发 版权声明:本文为博主原创文章,未经博主允许可以随意转载 https://blog.csdn.net/songqingwei1988/ar ...