zoukankan      html  css  js  c++  java
  • 毕设(三)NotifyIcon

      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:毕设UAVGroundStationWindowsFormsApp1.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.建议
    调试的时候
    最好用后者,前者有时候触发不了,不准确。
     
     
     
  • 相关阅读:
    实现快速读写配置文件的内容,可以用于读取*.exe.config文件或者Web.Config文件的内容,或者可以读取指定文件的配置项.
    DevExpress Grid控件经典常用功能代码收集
    DevExpress XtraGrid数据绑定:添加非绑定列
    DevExpress XtraGrid网格控件示例六:自定义合并单元格
    DevExpress XtraGrid网格控件示例七:列过滤
    DevExpress XtraGrid网格控件示例三:获取当前处于编辑状态的值
    DevExpress XtraGrid网格控件示例四:初始化新建行的单元格
    DevExpress XtraGrid网格控件示例五:验证终端用户输入的数据
    ASP.NET MVC 音乐商店
    ASP.NET MVC 音乐商店
  • 原文地址:https://www.cnblogs.com/xiaoai123/p/6554569.html
Copyright © 2011-2022 走看看