2010-04-11 15:47 by Ju2ender, 1438 visits, 网摘, 收藏, 编辑

最常见使用NotifyIcon的程序就是QQ了,当初我非常好奇这通知区域的小企鹅是怎样随着QQ的执行放上去的,这的确是个有趣的技巧。

要是用到自己的程序上的确显得非常专业!我们来为自己的小程序也加入个 : )

 

上面是Demo的效果,还能够吧 : )

首先我们创建一个WinForm项目,我起名叫“NotifyIconTest”:

删除默认创建的Form1,加入新窗口Main;新建一个目录,里面放入你喜欢的Icon(图片须为ico图像),这里我放入的是Gateway的Icon。

以下,在窗口中放入一个TextBox,一个Button,我起名叫btnShow。TextBox用于输入将放入提示气泡中的信息,Button用于将输入的信息显示出来。接着放入我们的主角:NotifyIcon控件,一般它位于公共控件中:

双击,将它增加我们的项目,这时它会放入设计视图的左下角。我们来看看它有哪些属性(不经常使用的就不说明了):

BalloonTipIcon —— 气泡提示的类型,有None(无)、Info(蓝色感叹号)、Warnning(黄色感叹号)、Error(小红叉);

BalloonTipText —— 气泡提示的内容,如上图的None等气泡类型信息;

BalloonTipTitle —— 气泡提示的标题,如上图的Tip;

ContextMenuStrip —— 绑定的右键菜单;

Icon —— 所显示的图标;

Text —— 鼠标移上去时,显示的提示信息;

Visible —— 是否显示图标,当然,不显示就看不到了。

那么如今我们在Show Button的Click事件中加入例如以下代码:

private void btnShow_Click(object sender, EventArgs e)
{
    string tipText = this.txtText.Text.Trim() == "" ? "No text!" : this.txtText.Text.Trim();
    this.notifyIcon.ShowBalloonTip(1000, "Tip", tipText, ToolTipIcon.Info);
}

首先推断了TextBox中是否有信息,无则提示“No Text!”,有则显示信息。使用NofifyIcon的ShowBalloonTip()(显示气泡提示)方法将输入的信息显示出来,第一个參数是信息显示的时间,以毫秒为单位;第二个是BalloonTipTitle;第三个是BalloonTipText;第四个是BalloonTipIcon。

为了显示提示更方便,不如在输入信息后按下回车就显示信息。做法是在窗口的属性中找到AcceptButton:

它的作用就是窗口的接受button,也就是与回车相应的button。将它设置为Show Button。另外还有个CancelButton属性;

它表示关闭该窗口的button,与Esc键相相应。

为了更像那么回事儿,我们再为图标加个右键菜单:

为它输入几个项目,我为它加了6个项目,当中一个是ComboBox、一个是TextBox:

然后,将它绑定到NofifyIcon的ContextMenuStrip属性上。

完毕了,我们来看看效果:

点击这里下载上面的演示样例NotifyIconTest。

以下是应一楼的朋友写的仿QQ提示框的Demo:

仅仅是粗略的实现了下,有待进一步优化,点击这里下载改变后的演示样例。

NotifyICon使用的更多相关文章

  1. C#之使用NotifyIcon实现任务栏托盘菜单,图标闪烁效果及气泡提示

    很多程序是只需要后台运行的,甚至不需要自己的应用界面.NotifyIcon提供了程序在任务栏的显示功能 程序下载链接如下: http://download.csdn.net/detail/u01031 ...

  2. WPF控件--利用Winform库中的NotifyIcon实现托盘小程序

    WPF控件--NotifyIcon   运行界面如下所示:            图1                                             图2 代码很少,如下所示 ...

  3. NotifyIcon 将窗口最小化到托盘

    1.设置窗体属性showinTask=false 2.加notifyicon控件notifyIcon1,为控件notifyIcon1的属性Icon添加一个icon图标. 3.添加窗体最小化事件(首先需 ...

  4. NotifyIcon用法

    -------------------控件NotifyIcon-----------//客户端调用 private void btnShowError_Click(object sender, Eve ...

  5. 为notifyIcon.icon属性赋图片

    System.Drawing.Bitmap bp; bp = new Bitmap(Application.StartupPath + @"\image\" + MeiYeShuo ...

  6. C#.NET常见问题(FAQ)-如何使用右下角托盘图标notifyIcon

    1 拖放一个NotifyIcon控件,并设置图标,还有显示的文字   2 双击这个控件,即当最小化了主窗体,然后双击这个右下角图标的时候,要显示主窗体(大部分程序的用户体验都是这样干的,比如QQ,双击 ...

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

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

  8. NotifyIcon实现托盘程序

    NotifyIcon 控件的常用属性属性:Icon类型:System.Drawing.Icon说明:将在系统任务栏中显示的图标.可以在设计时指定,也可在运行时动态指定.属性:Text类型:String ...

  9. wpf下使用NotifyIcon

    以前在winForm下使用过NotifyIcon,到wpf找不到了,在wpf下还是直接用WinForm里的那个NotifyIcon实现最小到系统托盘 定义一个NotifyIcon成员 : Notify ...

  10. NotifyIcon控件

    NotifyIcon就是系统托盘控件.通知区域中的图标是一些进程的快捷方式,这些进程在计算机后台运行,如防病毒程序或音量控制.这些进程不会具有自己的用户界面.NotifyIcon 类提供了编写此功能的 ...

随机推荐

  1. Oracle调用Java类开发的存储过程、函数的方法

    oracle调用java类的基本步骤 1. 编写java代码,后续可以直接使用java代码,class文件或者jar包 2. 将写好的java代码导入到oracle数据库中,有两种方法:一种是使用lo ...

  2. 15、python学习手册之:列表和字典

    1.列表属于可变序列,支持在原处的修改 2.在标准python解锁器内部,列表就是C数组而不是链接结构 3.内置函数map对序列中的各项应用一个函数并把结果收集到一个新的列表中 eg:list(map ...

  3. 3.Docker安装【Docker每天5分钟】

    原文:3.Docker安装[Docker每天5分钟] Docker给PaaS世界带来的“降维打击”,其实是提供了一种非常便利的打包机制.该机制打包了应用运行所需要的整个操作系统,从而保证了本地环境和云 ...

  4. 写给自己的TypeScript 入门小纲

    前几日,在知乎上写了一些技术类的文章,有人私信问我,是不是要找一份工作,有没有想过要跳槽,然后我回到,你们公司都是用的什么框架什么技术,他罗列了一堆,其中就包含了TypeScript,我甚至不知道有这 ...

  5. 简介及环境搭建跑通Hello

    简介及环境搭建跑通Hello Spring Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.是为了解决企业应用程序开 ...

  6. 微信浏览器跳转外部浏览器 app下载

    这个是摘抄的,具体抄的哪里我忘记了,作为记录 2019年5月14日 现在这个好像也不好用了,微信又提示建议下载qq浏览器什么的,显示一个红色感叹号,让用户产生怀疑,很鄙视tx error_report ...

  7. 四种卸载Mac软件的方法

    从 Mac 电脑上卸载已经安装的应用程序可能是你知道的操作系统里面最简单的一种了.而如果你是一名新买了 Mac 电脑的用户,那么你可能比较困惑:怎么没有控制面板中的相应板块来卸载它们呢?但是其实你想不 ...

  8. [TypeScript] Using Interfaces to Describe Types in TypeScript

    It’s easy to pass the wrong value to a function. Typescript interfaces are great because they catch ...

  9. complex query几个原则

    1.一般来说in比exists更有利(更容易变成join). 2.尽量避免union,使用union all代替,避免sort. 3,绝对不能在没有on条件下使用join(除非有特殊目的). 4.ou ...

  10. WebService--CXF与Spring的整合(jaxws:endpoint形式配置)以及客户端调用(spring配置文件形式,不需要生成客户端代码)

    一.CXF与Spring整合(jaxws:endpoint形式配置) 工具要点:idea.maven 1.新建一个maven项目 <?xml version="1.0" en ...