【愚公系列】2023年10月 Winform控件专题 NotifyIcon控件详解

举报
愚公搬代码 发表于 2023/10/30 09:31:36 2023/10/30
【摘要】 🏆 作者简介,愚公搬代码🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,腾讯云优秀博主,掘金优秀博主,51CTO博客专家等。🏆《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物...

🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,腾讯云优秀博主,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏

🚀前言

Winform控件是Windows Forms中的用户界面元素,它们可以用于创建Windows应用程序的各种视觉和交互组件,例如按钮、标签、文本框、下拉列表框、复选框、单选框、进度条等。开发人员可以使用Winform控件来构建用户界面并响应用户的操作行为,从而创建功能强大的桌面应用程序。

🚀一、NotifyIcon控件详解

NotifyIcon是Winform中常用的控件之一,通常用于在系统托盘中显示一个图标,以便用户可以轻松地访问程序的相关功能。下面是一些常用的NotifyIcon控件属性和方法:

属性:

  1. Icon:设置或获取NotifyIcon控件在系统托盘中显示的图标。
  2. Text:指定NotifyIcon控件鼠标悬停时显示的文本。
  3. Visible:指定NotifyIcon控件是否可见。

方法:

  1. ShowBalloonTip:在系统托盘中显示一个气泡提示,可以设置标题、文本和图标等属性。
  2. HideBalloonTip:隐藏当前显示的气泡提示。
  3. ShowContextMenu:在系统托盘上下文菜单中显示指定的菜单。

使用NotifyIcon控件通常需要以下步骤:

  1. 创建一个新的NotifyIcon控件,并设置相关属性。
  2. 编写事件处理程序来响应NotifyIcon控件的各种事件,例如鼠标单击、双击、右键菜单等。
  3. 在窗体的Load事件中将NotifyIcon控件添加到系统托盘中。
  4. 在程序退出时,一定要记得将NotifyIcon控件从系统托盘中移除。
private void button1_Click(object sender, EventArgs e)
{
    notifyIcon1.Visible = true;
    notifyIcon1.Icon = SystemIcons.Exclamation;
    notifyIcon1.BalloonTipTitle = "Balloon Tip Title";
    notifyIcon1.BalloonTipText = "Balloon Tip Text.";
    notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;

    notifyIcon1.ShowBalloonTip(30000);
}

在这里插入图片描述

🔎1.属性介绍

🦋1.1 BalloonTipIcon

NotifyIcon控件是Winform中一种常用的系统托盘控件,它可以在Windows系统的任务栏右侧图标区域显示一个图标,并在用户单击图标时弹出菜单或提示。

NotifyIcon控件的BalloonTipIcon属性用于设置在弹出提示框中显示的图标,它的值可以是以下枚举类型之一:

  • None:不显示图标。
  • Info:显示信息图标(一个蓝色的圆圈和一个白色的 i)。
  • Warning:显示警告图标(一个黄色的三角和一个黑色的感叹号)。
  • Error:显示错误图标(一个红色的圆圈和一个白色的 X)。

以下是一个示例代码,演示如何设置NotifyIcon控件的BalloonTipIcon属性:

// 设置NotifyIcon控件的BalloonTipIcon属性为Info
notifyIcon1.BalloonTipIcon = ToolTipIcon.Info;

// 设置NotifyIcon控件的BalloonTipIcon属性为Warning
notifyIcon1.BalloonTipIcon = ToolTipIcon.Warning;

// 设置NotifyIcon控件的BalloonTipIcon属性为Error
notifyIcon1.BalloonTipIcon = ToolTipIcon.Error;

在上述示例代码中,我们可以看到如何通过设置NotifyIcon控件的BalloonTipIcon属性来显示不同的图标。其中,我们使用了ToolTipIcon枚举类型,并将其作为BalloonTipIcon属性的值进行赋值。

🦋1.2 BalloonTipText和BalloonTipTitle和Icon

NotifyIcon控件是Winform中常用的一个控件,用于在系统托盘中显示图标和提示信息。其中,BalloonTipText、BalloonTipTitle和Icon属性是该控件的重要属性。

  1. BalloonTipText属性

该属性用于设置BalloonTip弹出提示框中的提示信息。可以通过以下代码进行设置:

notifyIcon1.BalloonTipText = "这是提示信息";
  1. BalloonTipTitle属性

该属性用于设置BalloonTip弹出提示框的标题。可以通过以下代码进行设置:

notifyIcon1.BalloonTipTitle = "提示标题";
  1. Icon属性

该属性用于设置NotifyIcon控件在系统托盘中显示的图标。可以通过以下代码进行设置:

notifyIcon1.Icon = new Icon("icon.ico");

其中,icon.ico是图标文件的路径。

需要注意的是,以上属性设置完成后,还需要调用ShowBalloonTip方法才能将BalloonTip弹出提示框显示在系统托盘中。示例代码如下:

notifyIcon1.ShowBalloonTip(5000);

以上代码中的参数5000表示提示框显示时间为5000毫秒。

🦋1.3 Tag和Text和Visible

NotifyIcon控件是Windows Forms中的一个通知图标控件,它可以在系统托盘中显示一个图标,用于通知用户某些事件发生。其常用属性如下:

  1. Tag属性:Tag属性可以用来存储一些与控件相关的数据,这些数据可以通过编程来访问和修改。例如,可以将Tag属性设置为某个对象,然后在控件的事件处理程序中使用这个对象来完成一些操作。

  2. Text属性:Text属性用于显示在ToolTip中的文本信息,当用户将鼠标悬停在图标上时会显示此文本信息。可以根据实际需要来设置此属性的值。

  3. Visible属性:Visible属性用于控制控件的可见性,如果设置为true,则控件会显示在系统托盘中,否则则不会显示。

下面是一个使用NotifyIcon控件的示例代码:

private void Form1_Load(object sender, EventArgs e)
{
    //创建NotifyIcon控件
    NotifyIcon notifyIcon = new NotifyIcon();
    notifyIcon.Tag = "一些与控件相关的数据";
    notifyIcon.Text = "这是ToolTip中的文本信息";
    notifyIcon.Icon = new Icon("icon.ico");
    notifyIcon.Visible = true;

    //为NotifyIcon控件注册鼠标事件
    notifyIcon.MouseClick += new MouseEventHandler(notifyIcon_MouseClick);
}

private void notifyIcon_MouseClick(object sender, MouseEventArgs e)
{
    //处理鼠标点击事件
    //...
}

在上面的代码中,我们首先创建了一个NotifyIcon控件,然后设置了它的Tag、Text和Visible属性。最后,我们为NotifyIcon控件注册了一个鼠标事件处理程序,当用户点击或悬停在图标上时会触发此事件处理程序,并进行相应的处理。

🦋1.4 ContextMenuStrip

NotifyIcon控件是Windows Forms中一个常用的控件,可以在系统托盘中显示一个图标,同时也可以通过右键菜单为用户提供更多的操作选项。ContextMenuStrip是NotifyIcon控件的一个属性,可以为该控件右键菜单指定一个菜单项集合。

具体使用方法如下:

  1. 在设计窗口中,向表单拖放一个NotifyIcon控件。

  2. 在属性窗口中找到NotifyIcon控件的ContextMenuStrip属性,点击选择器。

  3. 在弹出的菜单设计器中,可以添加需要的菜单项和子菜单项。

  4. 为菜单项添加Click事件处理程序,以响应用户的操作。

  5. 在程序代码中,可以通过NotifyIcon控件的ShowBalloonTip方法显示气泡提示,通过ContextMenuStrip属性显示右键菜单。

下面是一个示例代码,演示如何在NotifyIcon控件中使用ContextMenuStrip属性。

private void Form1_Load(object sender, EventArgs e)
{
    // 设置NotifyIcon控件的图标和提示信息
    notifyIcon1.Icon = new Icon("icon.ico");
    notifyIcon1.Text = "NotifyIcon示例程序";
    
    // 创建右键菜单项
    ContextMenuStrip menu = new ContextMenuStrip();
    // 添加菜单项
    menu.Items.Add("打开窗口");
    menu.Items.Add("退出程序");

    // 设置菜单项的Click事件处理程序
    menu.Items[0].Click += new EventHandler(OpenWindow_Click);
    menu.Items[1].Click += new EventHandler(Exit_Click);
    
    // 设置NotifyIcon控件的右键菜单
    notifyIcon1.ContextMenuStrip = menu;
}

// 打开窗口菜单项的Click事件处理程序
void OpenWindow_Click(object sender, EventArgs e)
{
    this.WindowState = FormWindowState.Normal;
}

// 退出程序菜单项的Click事件处理程序
void Exit_Click(object sender, EventArgs e)
{
    Application.Exit();
}

在上面的代码中,我们通过Form1_Load方法设置NotifyIcon控件的一些基本属性,包括图标和提示信息。然后创建了一个ContextMenuStrip对象,并向其添加了两个菜单项。最后将ContextMenuStrip对象赋值给NotifyIcon控件的ContextMenuStrip属性。同时,我们为每个菜单项的Click事件添加了一个处理程序,分别实现了打开窗口和退出程序的功能。

🔎2.常用场景

NotifyIcon控件是Winform中常见的小图标控件,通常用于以下场景:

  1. 系统托盘图标:将应用程序最小化到系统托盘中,以便用户在需要时能够快速访问应用程序。

  2. 提示消息:当应用程序需要通知用户某些信息时,通过该控件可以在系统托盘中显示一个气球提示或者闪烁图标等。

  3. 快速操作:用户可以通过单击控件快速执行某些常用操作,例如切换音乐、暂停播放等。

  4. 状态监控:通过控件显示应用程序的运行状态,例如网络连接状态、CPU使用率等。

  5. 菜单操作:用户通过右键单击控件可以弹出菜单,执行相应的操作。

NotifyIcon控件可以为应用程序提供一种简单、直观、且有效的通知和操作方式。

🔎3.具体案例

以下是一个Winform中NotifyIcon控件的具体案例:

首先,在窗体上放置一个NotifyIcon控件,并设置其Icon属性为应用程序图标。然后,在Form_Load事件中添加如下代码:

private void Form1_Load(object sender, EventArgs e)
{
    notifyIcon1.Visible = true;
    notifyIcon1.Text = "这是一个NotifyIcon控件的案例";
    notifyIcon1.BalloonTipTitle = "提示";
    notifyIcon1.BalloonTipText = "您的应用程序已最小化到托盘";
    notifyIcon1.Icon = this.Icon;
}

在窗口最小化事件中,将窗体隐藏,并在NotifyIcon的BalloonTip中显示提示信息:

private void Form1_SizeChanged(object sender, EventArgs e)
{
    if (this.WindowState == FormWindowState.Minimized)
    {
        this.Hide();
        notifyIcon1.ShowBalloonTip(1000);
    }
}

当用户单击NotifyIcon时,显示窗体:

private void notifyIcon1_Click(object sender, EventArgs e)
{
    if (this.WindowState == FormWindowState.Minimized)
    {
        this.Show();
        this.WindowState = FormWindowState.Normal;
    }
}

当用户右键单击NotifyIcon时,显示一个上下文菜单:

private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        ContextMenu menu = new ContextMenu();
        menu.MenuItems.Add(new MenuItem("退出", new EventHandler(MenuItemExit_Click)));
        notifyIcon1.ContextMenu = menu;
        menu.Show(notifyIcon1, e.Location);
    }
}

private void MenuItemExit_Click(object sender, EventArgs e)
{
    Application.Exit();
}

在窗体关闭事件中,需要先隐藏窗体,否则窗体关闭后,NotifyIcon仍然会存在于托盘中:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (this.WindowState != FormWindowState.Minimized)
    {
        this.Hide();
        e.Cancel = true;
    }
}

这就是一个简单的NotifyIcon控件案例了,可以通过这个案例了解NotifyIcon控件的基本使用方法。


🚀感谢:给读者的一封信

亲爱的读者,

我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

在这里插入图片描述

再次感谢您的阅读和支持!

最诚挚的问候, “愚公搬代码”

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。