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

时间:2016-02-20 19:17:11

标签: c#

我在C#开始学习,我自己定义的第一个目标就是编写一个小型应用程序,它开始在系统托盘上运行,并在用户将鼠标悬停在其图标上时显示其顶部的CPU温度。我已经找到了许多关于我需要的好问题(如herehereherehere)。但是,我想做一些我找不到答案的事情。

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

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

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

我很感激任何帮助。提前谢谢。

P.S。:表单不是应用程序的起始对象,而是自定义的应用程序上下文。

编辑:

相关代码摘录

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));
(...)

2 个答案:

答案 0 :(得分:0)

使用此代码为表单的调整大小事件添加事件处理程序

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

答案 1 :(得分:0)

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

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

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