【发布时间】:2016-02-21 04:23:20
【问题描述】:
我开始学习 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));
(...)
【问题讨论】:
-
你还有代码吗?
-
是的,我有。但是我拥有的代码可以正常工作。我只是不知道如何将 na 事件与运行时创建的表单相关联。我使用自定义的应用程序上下文构造函数来创建表单。请查看使用代码摘录更新的问题。
-
好的,我可以像使用最大化按钮一样禁用最小化按钮。但是,我已经看到一些应用程序以这种方式运行(当用户最小化其表单时,它会将其隐藏并继续在系统托盘中运行)。
-
确实它可能是一个选项,但我不知道当用户点击表单的最小化按钮时如何调用它。关键是表单是在运行时创建的,我不知道在这种情况下如何将任何代码与其最小化(或调整大小)事件相关联。我相信它可能很简单,但我看不到它......
标签: c#