【问题标题】:hiding my window from the start?从一开始就隐藏我的窗口?
【发布时间】:2011-08-05 10:09:28
【问题描述】:

我有一个表单(Form1,主表单),我希望一开始就隐藏它。

我想这样做是因为我有一个 notifyIcon,通过单击它可以为表单设置可见的真或假,但我无法在一开始就设置表单的可见性。

谢谢

【问题讨论】:

  • 您是否尝试过通过 Page_Load 或 OnInit 这样做?
  • 您是否尝试过使用 Visual Studio 中的属性菜单将 visable 属性设置为 false。
  • @Ziga,WinForms 中没有 Page_Load :-)

标签: c# winforms


【解决方案1】:

您不必在启动时显示表单。您可以简单地使用不采用 Form 实例的 Application.Run() 重载。这将启动 Windows 应用程序消息泵,而不显示任何 UI。

在执行 Application.Run() 之前,您可以设置要显示的 NotifyIcon。实际上,这意味着 NotifyIcon 将在启动后可见,并且当用户与图标交互时,您可以打开 Form。

这是一个最小的工作 C# 程序,它执行此操作:在启动时显示一个 NotifyIcon,并在用户单击它时显示一个表单:

using System;
using System.Drawing;
using System.Windows.Forms;

class Program
{
    static void Main()
    {
        NotifyIcon icon = new NotifyIcon();
        icon.Icon = new Icon("C:\\Windows\\System32\\PerfCenterCpl.ico");
        icon.Visible = true;
        icon.Click += (s,e) => new Form().Show();
        icon.DoubleClick += (s,e) => Application.Exit();
        Application.Run();
    }
}

【讨论】:

    【解决方案2】:

    我有一个应用程序可以做到这一点。要解决它,请在表单的 OnLoad 中执行此操作,它不会立即出现或出现在任务栏中:

    protected override void OnLoad(EventArgs e)
    {
        Visible = false;
        ShowInTaskbar = false;
        base.OnLoad(e);
    }
    

    【讨论】:

    • 正是我想要的,又好又简单
    猜你喜欢
    • 1970-01-01
    • 2015-03-15
    • 2023-02-23
    • 2022-10-15
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多