【发布时间】: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