我在C#开始学习,我自己定义的第一个目标就是编写一个小型应用程序,它开始在系统托盘上运行,并在用户将鼠标悬停在其图标上时显示其顶部的CPU温度。我已经找到了许多关于我需要的好问题(如here,here,here和here)。但是,我想做一些我找不到答案的事情。
我的应用程序将在运行时创建其唯一的表单,并仅在用户单击托盘图标上下文菜单中的某个选项时显示该表单。它已经在我的项目上工作,但是当用户点击它的最小化按钮时,我无法找到隐藏此表单的方法。
我希望应用程序以这种方式运行:当用户单击表单的最小化按钮时,它将被隐藏(并且不会显示在任务栏中),但应用程序仍应保持在系统中运行托盘。
那么,如何将调整大小或最小化(或其他)事件与在运行时创建的表单相关联?
我很感激任何帮助。提前谢谢。
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));
(...)
答案 0 :(得分:0)
使用此代码为表单的调整大小事件添加事件处理程序
if (WindowState == FormWindowState.Minimized)
Hide();
答案 1 :(得分:0)