C#程序最小化到托盘图标操作步骤与实现代码

实现将C#程序最小化到托盘图标需要完成以下几个步骤:

  1. 绑定系统托盘控件:在窗体上添加一个ContextMenu控件,然后在程序启动的时候绑定到系统托盘控件上。
private NotifyIcon notifyIcon;
private void BindNotifyIcon()
{
    notifyIcon = new NotifyIcon();
    notifyIcon.BalloonTipText = "程序已最小化";
    notifyIcon.Text = "C#程序最小化到托盘图标";
    notifyIcon.Icon = new Icon("icon.ico");//设置托盘图标 
    notifyIcon.Visible = true;
    notifyIcon.DoubleClick += new EventHandler(NotifyIcon_DoubleClick);//双击托盘图标恢复窗体 
    this.WindowState = FormWindowState.Minimized;
    this.Hide();//使主窗体隐藏 
    notifyIcon.ShowBalloonTip(2000);
    notifyIcon.ContextMenu = new ContextMenu(new MenuItem[] { new MenuItem("退出程序", new EventHandler((o,e)=>{
        this.Close();
    }))});
}

//双击托盘图标恢复窗体 
private void NotifyIcon_DoubleClick(object sender, EventArgs e)
{
    this.Show();
    this.WindowState = FormWindowState.Normal;
}
  1. 处理窗体最小化事件:当用户最小化窗体时,使窗体隐藏,同时在系统托盘中显示托盘图标和消息,表示程序正在后台运行。
private void frmMainResize(object sender, EventArgs e)
{
    if (WindowState == FormWindowState.Minimized)
    {
        notifyIcon.Visible = true;
        this.Hide();
        notifyIcon.ShowBalloonTip(2000);
    }
}

protected override void OnResize(EventArgs e)
{
    if (this.WindowState == FormWindowState.Minimized) 
    {
        this.Hide();
        notifyIcon.Visible = true;
        notifyIcon.ShowBalloonTip(1000);
    }
    base.OnResize(e);
}
  1. 双击托盘图标进行还原:当用户双击托盘图标时,将程序还原至原来的状态。
private void NotifyIcon_DoubleClick(object sender, EventArgs e)
{
    this.Show();
    this.WindowState = FormWindowState.Normal;
}

示例一,将WinForm程序最小化到托盘图标:

  1. 创建一个WinForm应用程序,添加名为“frmMain”的窗体
  2. 在frmMain窗体的代码中添加上述代码实现上述三步
  3. 运行程序,在窗口最小化状态下,程序会继续在系统托盘中运行

示例二,WinForm程序最小化到托盘图标并在系统托盘中显示气泡提示:

  1. 在上述示例一的基础上,在BindNotifyIcon方法中的notifyIcon.ShowBalloonTip(2000);后添加notifyIcon.Visible = true;
  2. 在NotifyIcon_DoubleClick方法中,添加this.WindowState = FormWindowState.Normal;语句,代码如下:
private void NotifyIcon_DoubleClick(object sender, EventArgs e)
{
    this.Show();
    this.WindowState = FormWindowState.Normal;
    notifyIcon.Visible = false;
}
  1. 运行程序,在系统托盘中双击程序图标,窗口会恢复至正常状态,同时托盘提示会自动消失。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#程序最小化到托盘图标操作步骤与实现代码 - Python技术站

(0)
上一篇 2023年6月6日
下一篇 2023年6月6日

相关文章

  • C# Winform 调用系统接口操作 INI 配置文件的代码

    关于C# Winform调用系统接口操作INI配置文件的代码,下面是详细的攻略: 1. 什么是INI文件 INI文件是一种配置文件格式,全称叫做Initial file,是一种比较老式的配置文件格式。它的结构非常简单,通常包含了若干个节(section)和各个节下的键值对(key-value pair)。INI文件的格式如下: [section1] key1…

    C# 2023年6月7日
    00
  • ASP.NET Core中Razor页面与MVC区别介绍

    ASP.NET Core中Razor页面与MVC区别介绍 ASP.NET Core是一个跨平台的开源框架,它可以帮助我们构建高性能的Web应用程序。在ASP.NET Core中,我们可以使用Razor页面和MVC来构建Web应用程序。本攻略将详细介绍Razor页面和MVC的区别,并提供两个示例说明。 Razor页面 Razor页面是一种基于HTML的视图引擎…

    C# 2023年5月17日
    00
  • C#调用sql2000存储过程方法小结

    下面就是详细讲解“C#调用sql2000存储过程方法小结”的完整攻略。 前提条件 在开始使用C#调用SQL Server 2000存储过程之前,需要满足以下前提条件: 电脑上已安装SQL Server 2000或更高版本,并正确配置SQL Server的连接信息。 电脑上已安装Visual Studio开发工具,并正确配置了数据库连接信息。 步骤 接下来,我…

    C# 2023年6月2日
    00
  • C#正则表达式之Regex类用法详解

    C#正则表达式之Regex类用法详解 正则表达式是一种强大的文本处理工具,常用于文本匹配、替换、过滤等操作。在C#中,我们可以使用Regex类来操作正则表达式。 Regex类的基本用法 Regex类提供了多个静态方法和实例方法,用于操作正则表达式。其中最常用的是Match和MatchCollection方法。 Match方法 Match方法用于查找第一个匹配…

    C# 2023年6月7日
    00
  • asp.net实现C#绘制太极图的方法

    让我来详细讲解一下“asp.net实现C#绘制太极图的方法”的完整攻略。 步骤一:准备工作 在开始绘制太极图之前,我们需要先准备好以下工作: 1. 安装Visual Studio 首先,我们需要在电脑上安装Visual Studio,这是一个功能强大的集成开发环境,可以方便地进行C#开发。 2. 创建ASP.NET网站 在Visual Studio中,我们通…

    C# 2023年6月3日
    00
  • C#使用FileSystemWatcher控件实现的文件监控功能示例

    在C#中,可以使用FileSystemWatcher控件实现文件监控功能。FileSystemWatcher控件可以监视指定目录中的文件和子目录的更改,并在发生更改时引发事件。本文将提供详解如何使用FileSystemWatcher控件实现文件监控功能的完整攻略,包括如何创建FileSystemWatcher控件、如何设置监视目录和文件类型、如何处理File…

    C# 2023年5月15日
    00
  • c#源码的执行过程详解

    c#源码的执行过程详解 1. 源代码编译过程 C#是一种基于CLR(公共语言运行时)的编程语言,它的源代码编译过程分为两个阶段:编译阶段和运行时阶段。 1.1 编译阶段 在C#中,源代码必须先被编译成微软中间语言(MSIL)或CIL(公共中间语言)代码。MSIL代码是CLR的执行代码,它不是本地机器代码,而是被CLR解释执行的代码。因此,编译后的代码可以在任…

    C# 2023年6月1日
    00
  • c#中object、var和dynamic的区别小结

    针对这个问题,我整理了一份详细讲解“C#中Object、var和dynamic的区别”的攻略,下面是详细讲解: Object、var和dynamic的区别小结 在C#编程中,object、var和dynamic是三个常用的类型。虽然它们都可以存储任意类型的数据,但它们的行为却截然不同。 1. Object Object是C#中所有类型的基类,也是一个基本的数…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部