c# - 在表单加载时最小化并隐藏 Winform

标签 c# winforms visibility

我在 C# 程序中有一个 Windows 窗体,其 FormBorderStyle 设置为 FixedToolWindow

该窗口没有正常的控制框,但用户仍然可以从菜单中将其最小化。还有一个设置可以让窗口以最小化状态启动。

当用户单击最小化按钮时,它调用以下函数:

private void minimizeWindow()
{
    timer1.Enabled = false;            
    this.WindowState = FormWindowState.Minimized;
    this.Hide();
}

窗口变成屏幕左下角的一个小框,然后消失(来自 this.hide 调用)。 当从 Form_Load 方法中调用相同的函数时(当设置开始最小化时),它会最小化但不会消失。

我的猜测是,因为我在到达 Form_Load 末尾之前隐藏了表单,所以当它到达方法末尾时它会再次显示。有什么方法可以确保表单在加载时隐藏(它从系统托盘图标再次最大化)?

编辑:包括表单加载的所有代码

private void Form1_Load(object sender, EventArgs e)
{
    this.Left = windowXPos;
    this.Top = windowYPos;
    sysTrayIcon.MouseDoubleClick += new MouseEventHandler(sysTrayIcon_MouseDoubleClick);
    sysTrayIcon.BalloonTipText = "Timers Running";
    this.sysTrayIcon.Icon = this.Icon;
    sysTrayIcon.Visible = true;
    sysTrayIcon.ShowBalloonTip(500);
    Start();  //sets up timers
    if (startMinimized)
    {
        minimizeWindow();
    }
}

最佳答案

最好稍微改变一下你的逻辑,而不是根本显示表单,而是创建它的一个实例(var foo = new MyForm()),但不要调用.Show() 因此,除非从系统托盘图标触发,否则它永远不会显示。

关于c# - 在表单加载时最小化并隐藏 Winform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35608239/

相关文章:

c# - TcpClient 超时与 NetworkStream 超时

c# - 用按钮计算表格位置

c# datetimepicker : how do i get the date in the format? 2001/1/1

c# - 几秒钟后关闭 MessageBox

css - 将鼠标悬停在文本上以使用 CSS 在另一个 div(不是子元素)中显示图像

Selenium C# Webdriver 如何检测元素是否可见

c# - 将 System.Messaging.MessageQueue 或 WCF 用于 MSMQ?

c# - WinCE 6.0 通过ActiveSync/Window Mobile Device Center C#连接PC

android - AnimationDrawable 自动启动

c# - 当一个对象被强制转换为基类时,它如何记住它的真实身份?