【问题标题】:C# - Hide created form on switch window (alt + tab) from codeC# - 从代码中隐藏在切换窗口(alt + tab)上创建的表单
【发布时间】:2017-06-20 23:01:01
【问题描述】:

我有一个可以像这样创建另一个表单的表单。

private void AEGISBot(String option) {
        if (AEGIS == null) {
            AEGIS = new Form();
            AEGIS.ShowInTaskbar = false;
            AEGIS.TopMost = true;
            AEGIS.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            AEGIS.Size = new Size(396, 191);
            //AEGIS.Size = new Size(720, 720);
            AEGIS.StartPosition = FormStartPosition.CenterScreen;
            AEGIS.BackColor = Color.LightBlue;
            AEGIS.TransparencyKey = AEGIS.BackColor;
            Label AEGISLabel = new Label();
            AEGISLabel.Location = new Point(0, 0);
            AEGISLabel.Size = new Size(AEGIS.Size.Width, AEGIS.Size.Height);
            AEGISLabel.TextAlign = ContentAlignment.MiddleCenter;
            AEGISLabel.Text = "AEGIS";
            AEGISLabel.Font = new Font("Agency FB", 120, FontStyle.Bold);
            AEGISLabel.ForeColor = System.Drawing.Color.Navy;
            AEGIS.Controls.Add(AEGISLabel);
        }

        if (option == "show"){
            AEGIS.Show();
        }
    }

但是如何从 alt 选项卡中隐藏它。我尝试添加这样的代码。

protected override CreateParams CreateParams
    {
        get
        {
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= 0x80;
            return cp;
        }
    }

我的主表单已成功从 alt 选项卡中隐藏。但是如何使用它来创建表单呢??

谢谢

-编辑

我正在使用 Windows 窗体应用程序。有一些表单设置

this.ShowInTaskbar = false;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.ShowIcon = false;
this.WindowState = FormWindowState.Minimized;

【问题讨论】:

  • 假设您从here 获得该代码,我建议您在主表单上提供更多信息。你试过AEGIS.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow 吗?另外,您的主表单是否也设置为ShowInTaskbar = false;
  • 是的@Mat,已经这样做了。我将主窗体边框样式设置为无,ShowInTaskbar 等于 false。也是 AEGIS 形式。
  • 嗯,this(请参阅那里接受的答案)是我发现的唯一另一个相当简单的选项。如果这不起作用,恐怕我们可能需要更多信息(您的主表单是如何创建的,它的设置是什么等)。
  • 向问题添加了一些信息
  • 为了帮助您,我们必须知道在哪个类中定义了CreateParams 属性覆盖以及与0x80 关联的样式。你还说你的主要表单隐藏在 Alt-Tab 中,但不是创建的表单......这看起来很奇怪。隐藏额外的窗口应该比隐藏主窗口更容易。 顺便说一句,你不应该在表单上使用TopMost标志。如果你想提供这样的选项,它应该是可选的,默认情况下不选中。

标签: c# forms winforms visual-studio


【解决方案1】:

尝试使用AEGIS.ShowDialog() 而不是AEGIS.Show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多