用 C# 编写一个停放在任务栏上的图标程序

下面是用C#编写一个停放在任务栏上的图标程序的完整攻略:

步骤一:创建项目

  1. 打开Visual Studio 新建一个Windows 窗体应用程序项目。
  2. 在解决方案资源管理器中双击 Form1.cs 文件以打开窗体设计器。
  3. 将工具箱中的 NotifyIcon 控件拖到窗口设计器窗口中,这个控件将是我们后面实现任务栏图标功能的主角。

步骤二:实现图标控制功能

  1. 给 NotifyIcon 控件设置一个图标,可以使用工具箱中的 Icon 图标控件。
  2. 在窗体的 Form_Load 事件中设置NotifyIcon的属性,让它显示在任务栏中,并设置图标的提示文本。

csharp
private void Form1_Load(object sender, EventArgs e)
{
notifyIcon1.Visible = true;
notifyIcon1.Icon = new Icon("icon.ico");
notifyIcon1.Text = "这是我的图标控制小程序";
}

  1. 在NotifyIcon控件的 MouseClick 事件中编写代码让它显示/隐藏窗口或者执行其他的操作,以此可以实现图标的交互。

步骤三:添加菜单

NotifyIcon 控件支持添加菜单项,这里我们给它添加两个菜单项,一个打开窗口,一个关闭程序。

  1. 在窗口设计器中右键单击 NotifyIcon 控件,选择“添加上下文菜单”。
  2. 在弹出的菜单中,分别添加“打开”和“退出”两个菜单项。
  3. 在 NotifyIcon 控件的 ContextMenuStrip 属性中,将刚刚创建的上下文菜单关联到NotifyIcon 控件上。

csharp
notifyIcon1.ContextMenuStrip = contextMenuStrip1;

  1. 编写关闭程序的功能实现代码,这里使用 Application.Exit 方法。

csharp
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}

示例如下:

以上是实现一个停放在任务栏上的图标程序的完整攻略。实际上,在这个基础上,还可以进一步完善图标的交互和菜单的功能,比如在菜单项上添加图标和快捷键等。

下面是具体的两个示例说明:

示例一:

通过代码让图标控制程序最小化到托盘:

private void Form1_Resize(object sender, EventArgs e)
{
    if (this.WindowState == FormWindowState.Minimized)   
    {
        this.notifyIcon1.Visible = true;   
        this.ShowInTaskbar = false;   
        this.Hide();  
    }
}

示例二:

在右键菜单项上添加一个图标和一个快捷键实现打开窗口:

  1. 在 Visual Studio 中导入一个程序图标,将其添加到项目中。
  2. 在“打开”菜单项的属性中设置 DisplayedImage 属性。

csharp
this.打开ToolStripMenuItem.Image = Properties.Resources.icon;

  1. 在“打开”菜单项的属性中设置 ShortcutKeys 属性为 Ctrl+O。

csharp
this.打开ToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))));

  1. 编写“打开”菜单项的点击事件代码,以打开窗口的方式实现任务栏图标的交互。

csharp
private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
this.ShowInTaskbar = true;
this.notifyIcon1.Visible = false;
this.Show();
}

这样就可以在右键菜单项上添加一个图标,并使用快捷键 Ctrl+O 实现打开窗口的操作了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用 C# 编写一个停放在任务栏上的图标程序 - Python技术站

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

相关文章

  • C#反射机制介绍

    C#反射机制介绍 C#中的反射机制是一种强大的工具,可以在程序运行时动态地获取类型信息、创建对象以及调用对象的方法和属性等操作,这使得我们可以编写更加灵活、可扩展的程序。 获取类型信息 在C#中,使用Type类来获取类型信息。通常可以使用typeof运算符获取类型的信息,例如: Type t = typeof(string); 也可以使用对象的GetType…

    C# 2023年5月31日
    00
  • 使用C#的aforge类库识别验证码实例

    作为网站作者,我可以为大家讲解一下使用C#的AForge类库识别验证码的完整攻略。 安装AForge类库 首先,我们需要在项目中安装AForge类库,可以通过NuGet进行安装。 打开Visual Studio,在项目面板上右键,点击“管理NuGet程序包”。在搜索框中输入“AForge”,找到“AForge.Imaging”和“AForge.Math”库并…

    C# 2023年6月3日
    00
  • 无法识别的属性“type”+IIS没有Asp.net配置选项的解决方法

    “无法识别的属性“type”+IIS没有Asp.net配置选项的解决方法”是一种常见的IIS错误,通常是由于IIS没有正确配置或缺少必要的组件引起的。本文将介绍如何解决这个问题,并提供两个示例来演示如何使用这些技术。 解决“无法识别的属性“type”+IIS没有Asp.net配置选项”的方法 以下是解决“无法识别的属性“type”+IIS没有Asp.net配…

    C# 2023年5月15日
    00
  • .NET CORE中使用AutoMapper进行对象映射的方法

    介绍 AutoMapper 是一款快速、简单、灵活、可自定义的对象映射库,它支持在 .NET Core 中使用。通过使用 AutoMapper,可以从一个对象把数据映射到另一个对象。 在本文中,我们将详细介绍 .NET Core 中使用 AutoMapper 进行对象映射的方法以及包含两个示例说明。 安装 为了安装 AutoMapper,我们需要使用 NuG…

    C# 2023年6月1日
    00
  • C#深度优先遍历实现全排列

    下面是 C# 实现全排列深度优先遍历的攻略: 一、深度优先遍历(DFS) 深度优先遍历是一种重要的搜索算法,其基本思想是从某一起点开始,先探索其所有可能的分支,直到结束。在搜索中需要使用一个栈来存储搜索过程中的状态,当搜索到某个状态时,就把这个状态入栈,当搜索到该状态的所有子节点时,把该节点从栈里弹出,回溯到当前节点的上一个状态继续搜索,直到搜索完整个状态空…

    C# 2023年6月8日
    00
  • .net core版 文件上传/ 支持批量上传拖拽及预览功能(bootstrap fileinput上传文件)

    .NET Core版文件上传攻略 在.NET Core应用程序中,文件上传是一项常见的任务。本攻略将深入探讨如何使用Bootstrap FileInput插件实现文件上传,并提供两个示例说明。 安装Bootstrap FileInput插件 在.NET Core应用程序中,您需要安装Bootstrap FileInput插件。您可以使用NuGet包管理器或命…

    C# 2023年5月17日
    00
  • c#中的扩展方法学习笔记

    下面我将详细讲解C#中的扩展方法学习笔记的完整攻略: 扩展方法简介 扩展方法是一种特殊的静态方法,它可以在不改变原有类的基础上,给该类添加新的方法。扩展方法的定义必须在一个静态类中,并且这个静态类必须是非泛型类,这个类的方法必须是静态且必须使用 this 关键字作为第一个参数。扩展方法的使用方式和实例方法一样,但注意一定要引用命名空间。 扩展方法的定义 扩展…

    C# 2023年6月7日
    00
  • C#服务器NFS共享文件夹搭建与上传图片文件的实现

    下面是“C#服务器NFS共享文件夹搭建与上传图片文件的实现”的完整攻略。 搭建NFS服务器 安装NFS服务器软件 在Linux系统上搭建NFS服务器,首先需要安装NFS服务器软件。可以使用以下命令安装: sudo apt-get install nfs-kernel-server 创建NFS共享目录 在Linux系统上,需要创建一个目录作为NFS共享目录。可…

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