首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
【愚公系列】2023年11月 WPF控件专题 Line控件详解
2
【愚公系列】2023年11月 WPF控件专题 2023秋招WPF高频面试题
3
【愚公系列】2023年11月 Winform控件专题 Label控件详解
4
【愚公系列】2023年11月 Winform控件专题 Button控件详解
5
【愚公系列】2023年11月 Winform控件专题 Form控件详解
6
【愚公系列】2023年11月 Winform控件专题 TextBox控件详解
7
【愚公系列】2023年11月 Winform控件专题 CheckBox控件详解
8
【愚公系列】2023年11月 Winform控件专题 RadioButton控件详解
9
【愚公系列】2023年11月 Winform控件专题 ComboBox控件详解
10
【愚公系列】2023年11月 Winform控件专题 RichTextBox控件详解
11
【愚公系列】2023年11月 Winform控件专题 ListBox控件详解
12
【愚公系列】2023年11月 Winform控件专题 CheckedListBox控件详解
13
【愚公系列】2023年11月 Winform控件专题 numericUpDown控件详解
14
【愚公系列】2023年11月 Winform控件专题 LinkLabel控件详解
15
【愚公系列】2023年11月 Winform控件专题 DateTimePicker控件详解
16
【愚公系列】2023年11月 Winform控件专题 NotifyIcon控件详解
17
【愚公系列】2023年11月 Winform控件专题 ContextMenuStrip控件详解
18
【愚公系列】2023年11月 Winform控件专题 Timer控件详解
19
【愚公系列】2023年11月 Winform控件专题 PictureBox控件详解
20
【愚公系列】2023年11月 Winform控件专题 Chart控件详解
21
【愚公系列】2023年11月 Winform控件专题 DataGridView控件详解
22
【愚公系列】2023年11月 Winform控件专题 TableLayoutPanel控件详解
23
【愚公系列】2023年11月 Winform控件专题 ProgressBar控件详解
24
【愚公系列】2023年11月 Winform控件专题 Panel控件详解
25
【愚公系列】2023年11月 Winform控件专题 FlowLayoutPanel控件详解
26
【愚公系列】2023年11月 Winform控件专题 GroupBox控件详解
27
【愚公系列】2023年11月 Winform控件专题 SplitContainer控件详解
28
【愚公系列】2023年11月 Winform控件专题 TabControl控件详解
29
【愚公系列】2023年11月 Winform控件专题 ToolTip控件详解
30
【愚公系列】2023年11月 Winform控件专题 MaskedTextBox控件详解
31
【愚公系列】2023年11月 Winform控件专题 MonthCalendar控件详解
32
【愚公系列】2023年11月 Winform控件专题 TreeView控件详解
33
【愚公系列】2023年11月 Winform控件专题 MenuStrip控件详解
34
【愚公系列】2023年11月 Winform控件专题 OpenFileDialog控件详解
35
【愚公系列】2023年11月 Winform控件专题 SaveFileDialog控件详解
36
【愚公系列】2023年12月 Winform控件专题 FontDialog控件详解
37
【愚公系列】2023年12月 Winform控件专题 ColorDialog控件详解
38
【愚公系列】2023年12月 Winform控件专题 FolderBrowserDialog控件详解
39
【愚公系列】2023年12月 Winform控件专题 StatusStrip控件详解
40
【愚公系列】2023年12月 Winform控件专题 ToolStrip控件详解
41
【愚公系列】2023年12月 Winform控件专题 HelpProvider控件详解
42
【愚公系列】2023年12月 Winform控件专题 ToolStripContainer控件详解
43
【愚公系列】2023年12月 Winform控件专题 BackgroundWorker控件详解
44
【愚公系列】2023年12月 GDI+绘图专题 图形图像编程基础
45
【愚公系列】2023年12月 GDI+绘图专题 图形图像的重绘
46
【愚公系列】2023年12月 GDI+绘图专题 颜色获取和图形绘制
47
【愚公系列】2023年12月 GDI+绘图专题 Point
48
【愚公系列】2023年12月 GDI+绘图专题 Rectangle
49
【愚公系列】2023年12月 GDI+绘图专题 Matrix
50
【愚公系列】2023年12月 GDI+绘图专题 Pen

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

🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,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控件从系统托盘中移除。
代码语言:c#
复制
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属性:

代码语言:c#
复制
// 设置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弹出提示框中的提示信息。可以通过以下代码进行设置:

代码语言:c#
复制
notifyIcon1.BalloonTipText = "这是提示信息";
  1. BalloonTipTitle属性

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

代码语言:c#
复制
notifyIcon1.BalloonTipTitle = "提示标题";
  1. Icon属性

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

代码语言:c#
复制
notifyIcon1.Icon = new Icon("icon.ico");

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

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

代码语言:c#
复制
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控件的示例代码:

代码语言:c#
复制
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属性。

代码语言:c#
复制
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事件中添加如下代码:

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

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

代码语言:c#
复制
private void Form1_SizeChanged(object sender, EventArgs e)
{
    if (this.WindowState == FormWindowState.Minimized)
    {
        this.Hide();
        notifyIcon1.ShowBalloonTip(1000);
    }
}

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

代码语言:c#
复制
private void notifyIcon1_Click(object sender, EventArgs e)
{
    if (this.WindowState == FormWindowState.Minimized)
    {
        this.Show();
        this.WindowState = FormWindowState.Normal;
    }
}

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

代码语言:c#
复制
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仍然会存在于托盘中:

代码语言:c#
复制
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (this.WindowState != FormWindowState.Minimized)
    {
        this.Hide();
        e.Cancel = true;
    }
}

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


我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

下一篇
举报
领券