NotifyIcon实现托盘程序

来源:互联网 发布:怎么找淘宝大v合作 编辑:程序博客网 时间:2024/05/17 21:51

 

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事件中完成判断,具体代码:
        /// <summary>
        /// 最小化值系统托盘
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
  private void Form_SizeChanged(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized)  //判断是否最小化
            {
                this.ShowInTaskbar = false;  //不显示在系统任务栏
                notifyIcon.Visible = true;  //托盘图标可见
            }
        }
        /// <summary>
        /// 还原(notifyIcon的鼠标双击事件)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        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添加右键菜单:

              主窗体中拖入一个ContextMenu控件contextMenu1,点中控件,在上下文菜单中添加菜单,notifyIcon1的ContextMenu行为中选中contextMenu1作为上下文菜单。

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

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

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);
}

void Form1_Click(object sender, EventArgs e)
{
    notifyIcon1.Visible = true;
    notifyIcon1.ShowBalloonTip(30);

}

引用:http://blog.sina.com.cn/s/blog_3cfb85100100e406.html

 

原创粉丝点击