我是靠谱客的博主 冷艳大雁,最近开发中收集的这篇文章主要介绍C# NotifyIcon 鼠标左键弹出托盘菜单的两个方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  最近在做一个小程序,要求程序的图标显示在任务栏的通知区域,就和QQ的图标显示一样。NotifyIcon类提供了这类的实现方法。NotifyIcon控件的Icon属性定义显示在通知区域中的图标。图标的弹出菜单由 ContextMenu属性确定。Text属性分配工具提示文本。在默认情况下,在图标上单击鼠标右键,图标的弹出菜单才显示出来。如果想点击左键,图标的弹出菜单也显示的话,可以由如下两个方法实现:

方法一:使用notifyicon的show方法,缺点是鼠标单击左键出来菜单后,单击左键显示菜单后该菜单式一直存在的,且在任务栏里出现了一个没有程序名的小方块,如图

 

 

  void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)  //单击鼠标左键也弹出菜单
            {
                Control control = new Control(null, Control.MousePosition.X, Control.MousePosition.Y, 1, 1);
                control.Visible = true;
                control.CreateControl();
                Point pos = new Point(0, 0);//这里的两个数字要根据你的上下文菜单大小适当地调整 
                this.contextMenuStrip1.Show(control, pos);
            } 
        }

方法二:利用反射的方法,其实现的效果与单击右键完全一致

void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)  //单击鼠标左键也弹出菜单
            {
                Type t = typeof(NotifyIcon);
                MethodInfo mi = t.GetMethod("ShowContextMenu", BindingFlags.NonPublic | BindingFlags.Instance);
                mi.Invoke(this.notifyIcon1, null);
            } 
        }

 

 

最后

以上就是冷艳大雁为你收集整理的C# NotifyIcon 鼠标左键弹出托盘菜单的两个方法的全部内容,希望文章能够帮你解决C# NotifyIcon 鼠标左键弹出托盘菜单的两个方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部