NotifyIcon控件

发布时间:2013-04-14 14:43:15

一、notifyicon控件的用法

NotifyIcon 控件提供了编写此功能的方法。Icon属性定义显示在通知区域中的图标。图标的弹出菜单由 ContextMenu属性确定。Text属性分配工具提示文本。要在通知区域中显示图标,必须将 Visible属性设置为 true

第一步:新创建一个项目Form1text属性修改为自己的项目名称;

第二步:向Form1窗口中添加一个NotifyIcon控件,修改其Name属性为 MyNotifyIcon。修改其Text属性与应用程序的标题相同。这是因为NotifyIcon显示在系统托盘中时,Text属性中保存的文本为鼠标移动到程序图标上时的提示信息。修改Icon属性,为NotifyIcon添加一个图标;

Form1的属性窗口上,把Icon属性也选择为与NotifyIcon相同的图标。修改ShowInTaskBar属性值为False,这样,应用程序在运行时就不会出现在任务栏中;

添加双击NotifyIcon时的事件处理代码(DoubleClick

private void MynotifyIcon_DoubleClick(object sender, System.EventArgs e)

{

if(this.Visible)

{

this.Hide();

}

else

{

this.Show();

}

}

在使用NotifyIcon控件时,经常需要用到快捷菜单(ContextMenu控件)。使用方法为,向Form1中添加contextmenu控件,添加两个菜单项,一个为打开主界面,一个为退出。在NotifyIconContextMenu属性中选择刚刚添加的ContextMenu控件。这样在图标上可以通过快捷菜单执行程序的各种功能。

打开主界面的菜单编码为:

private void 打开主界面ToolStripMenuItem_Click(object sender, EventArgs e)

{

if (this.Visible)

{

this.Hide();

}

else

{

this.Show();

}

}

private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)

{

this.Close();

}

Form1_SizeChanged事件,效果为最小化窗体时,在系统托盘区域显示程序图标及气球提示:

private void Form1_SizeChanged(object sender, EventArgs e)

{

if (WindowState == FormWindowState.Minimized)

{

this.Hide();

this.notifyIcon1.Visible = true;

this.notifyIcon1.ShowBalloonTip(30, "注意", "大家好,这是一个事例", ToolTipIcon.Info);

}

}

这样就实现了上述功能,需要强调的是:this.notifyIcon1.ShowBalloonTip(30, "注意", "大家好,这是一个事例", ToolTipIcon.Info);为气球提示的实现,代码WindowState == FormWindowState.Minimized为窗体最小化的判断条件,代码this.WindowState = FormWindowState.Normal;为窗体还原的实现。

NotifyIcon实现托盘程序

NotifyIcon 控件的常用属性

属性:Icon

类型:System.Drawing.Icon

说明:将在系统任务栏中显示的图标。可以在设计时指定,也可在运行时动态指定。

属性:Text

类型:String

说明:用于指定当鼠标停留在小图标上时显示的信息。

属性:Visible

类型:Bool

说明:用于设置小图标是否显示。

注意:如果程序退出前没有将其设置为false,那么小图标将一直停留在系统栏,直到鼠标从上面经过时才会消失。

操作:Click

说明:当鼠标单击时激发的事件

操作:DoubleClick

说明:当鼠标双击时激发的事件

操作:MouseDown

说明:当鼠标其中一键按下时激发的事件

操作:MouseUp

说明:当鼠标其中一键松开时激发的事件

操作:MouseMove

说明:当鼠标其中一键从上掠过时激发的事件

 

BalloonTipIcon -- 气球工具提示关联的图标

BallonnTipText -- 气球工具提示关联的文本

BallonnTipText -- 气球工具提示的标题

实践:  

     要求将程序最小化的同时让程序的图标出现在系统托盘的位置上,而不显示在任务栏中。鼠标双击系统托盘中的图标时,还原窗体。

<1>.ShowInTaskbar属性控制是否在任务栏显示窗体。

<2>.WindowState  属性指出当前Winform窗体的窗口状态。

当前窗口状态只有三种情况:

 FormWindowState.Maximized;//最大化窗口

 FormWindowState.Minimized;//最小化窗口

 FormWindowState.Normal;//默认的窗口大小

<3>.使用notifyIcon控件是控制出现在系统托盘的内容的。

        notifyIcon.Icon           -- 指定出现在任务栏中的Icon图标

        notifyIcon.Text           -- 显示的文本

  notifyIcon.BalloonTipIcon -- 气球工具提示关联的图标

        notigyIcon.BallonnTipText -- 气球工具提示关联的文本

  notigyIcon.BallonnTipText -- 气球工具提示的标题。

 <4>.应在Form_SizeChange事件中完成判断,具体代码:

        ///

        /// 最小化值系统托盘

        ///

        ///

        ///

private void Form1_SizeChanged(object sender, EventArgs e)

{

if (this.WindowState == FormWindowState.Minimized) //判断是否最小化

{

this.ShowInTaskbar = false; //不显示在系统任务栏

notifyIcon1.Visible = true; //托盘图标可见

}

}

        ///

        /// 还原(notifyIcon的鼠标双击事件)

        ///

        ///

        ///

private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)

{

if (this.WindowState == FormWindowState.Minimized)

{

this.ShowInTaskbar = true; //显示在系统任务栏

this.WindowState = FormWindowState.Normal; //还原窗体

notifyIcon1.Visible = false; //托盘图标隐藏

}

}

       <5>.notifyIcon添加右键菜单:

              主窗体中拖入一个contextMenuStrip控件contextMenuStrip1,点中控件,在上下文菜单中添加菜单,notifyIcon1contextMenuStrip行为中选中contextMenuStrip1作为上下文菜单。

       NotifyIcon.ShowBalloonTip (time) 在任务栏中持续显示气球提示指定的时间(以毫秒为单位)。最小和最大超时值由操作系统执行,一般分别为 10 秒和 30 秒,但这可能因操作系统而异。太大或太小的超时值将调整为适当的最小值或最大值。此外,如果用户看起来没有使用计算机(没有键盘或鼠标事件发生),则系统不将此时间计算在超时值内。

       一次只能在任务栏中显示一个气球提示。如果当前在任务栏中已经显示了一个气球提示,则尝试显示其他气球提示将导致忽略 timeout 值。行为会因气球提示是来自其他应用程序,还是来自同一应用程序而稍有不同。如果第二个气球提示来自其他应用程序,第一个气球提示将在第二个提示出现之前持续显示最小超时值,而不管 timeout. 的值是多少。如果这两个气球提示来自同一应用程序,则第一个气球提示在再次调用 ShowBalloonTip 方法时立即关闭。标题文本将在气球顶部附近以粗体显示。

private void Form1_Click(object sender, EventArgs e)

{

notifyIcon1.Visible = true;

notifyIcon1.ShowBalloonTip(10);

}

private void SetBalloonTip()

{

notifyIcon1.Icon = SystemIcons.Exclamation;

notifyIcon1.BalloonTipTitle = "Balloon Tip Title";

notifyIcon1.BalloonTipText = "Balloon Tip Text.";

notifyIcon1.BalloonTipIcon = ToolTipIcon.Error;

this.Click += new EventHandler(Form1_Click);

}

设计页面

运行页面

NotifyIcon控件

相关推荐