当用户使用 C# 单击最小化按钮时,如何隐藏在运行时创建的表单

本文关键字:隐藏 运行时 表单 创建 何隐藏 用户 单击 最小化 按钮 | 更新日期: 2023-09-27 18:35:27

我开始学习 C#,我为自己定义的第一个目标是编写一个小应用程序,该应用程序开始在系统托盘上运行,当用户将鼠标移到其图标上时,在其尖端显示 CPU 温度。我已经找到了很多关于我需要什么的好问题(如这里,这里,这里和这里)。但是,我想做一些我还找不到答案的事情。

我的应用程序将在运行时创建其唯一窗体,并且仅当用户单击托盘图标上下文菜单中的选项之一时才显示它。它已经在处理我的项目,但是当用户单击其最小化按钮时,我无法找到隐藏此表单的方法。

我希望应用程序的行为方式:当用户单击表单的最小化按钮时,它将被隐藏(并且不显示在任务栏中),但应用程序仍应在系统托盘中保持运行。

那么,如何将调整大小或最小化(或其他)事件与在运行时创建的表单相关联呢?

我将不胜感激任何帮助。提前谢谢。

PS:表单不是应用程序的启动对象,而是自定义的应用程序上下文。

编辑:

相关代码摘录

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
[STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MyApplicationContext()); 
    }
}
public class AppForm : System.Windows.Forms.Form
{
    public AppForm()
    {
        this.Size = new System.Drawing.Size(300, 300);
        this.StartPosition = FormStartPosition.CenterScreen;
        this.MaximizeBox = false;
        this.FormBorderStyle = FormBorderStyle.FixedSingle;
        this.Icon = CPUTemp.Properties.Resources.AppIcon;
    }
}
public class MyApplicationContext : ApplicationContext
{
    NotifyIcon trayIcon = new NotifyIcon();
    AppForm frmSetup = new AppForm();
    public MyApplicationContext()
    {
        MenuItem setupMenuItem = new MenuItem("Setup", new EventHandler(ShowSetup));
        MenuItem exitMenuItem = new MenuItem("Exit", new EventHandler(Exit));
(...)

当用户使用 C# 单击最小化按钮时,如何隐藏在运行时创建的表单

使用此代码为窗体的 Resize 事件添加事件处理程序

if (WindowState == FormWindowState.Minimized)
      Hide();

在等待你的帮助时,我一直在寻找答案,我找到了。我想和你分享。

您可以在此链接中找到有关如何在运行时创建事件处理程序并将其与对象关联的详细说明。

谢谢大家的支持,特别是西门·