我已逐步运行我的程序,但仍然无法找到form.visible
的设置位置。
以下是“Form1.cs”的代码:
public Form1()
{
InitializeComponent();
this.Hide();
}
我添加了this.Hide();
,但它根本不起作用。
我甚至修改了“Program.cs”:
Application.Run(new Form1());
为:
Form1 form1=new Form1();
form1.Visible = false;
Application.Run(form1);
但主要表单仍然显示,即使添加form1.Enable=false;
也不会阻止表单显示。我也尝试在this.Hide();
中添加Form1_Load()
,但它有效,但主要形式出现并在最终被隐藏之前闪现。
我现在完全糊涂了。那么如何在不显示的情况下加载主窗体?并将其隐藏起来,直到我拨打this.Show();
?
答案 0 :(得分:2)
在加载之前,您无法将表单visible
设置为false
,请尝试以下代码:
//In Main Function
Form1 form1 = new Form1();
form1.WindowState = FormWindowState.Minimized;
form1.ShowInTaskbar = false;
Application.Run(new Form1());
//In Form Shown
private void Form1_Shown(object sender, EventArgs e)
{
this.Visible = false;
}
答案 1 :(得分:2)
Application.Run(Form)的文档清楚地说明它会使表单可见。只要您需要隐藏它,就不应该将该表单传递给Application.Run。根据您的需要,您可以使用Application.Run()(无参数)或Application.Run(context)(创建自定义ApplicationContext
)。
编辑:我只想添加不显示表单,您不应该显示表单。我不明白这里有多少用户认为显示表单然后很快隐藏它,或者使显示表单的代码不显示表单是个好主意。你不应该做错事,然后在事后修好,你应该在第一时间做正确的事。
答案 2 :(得分:2)
为什么不覆盖SetVisibleCore方法:
bool showForm = false;
protected override void SetVisibleCore(bool value)
{
base.SetVisibleCore(showForm);
}
这会在表单打开之前隐藏表单。使用很多方法,你可以在它之前看到表格的简短闪光。可见或类似的属性被设置为“隐藏”。
显然,当你想再次显示它时,你需要另一种方法将'showForm'翻转为true,即NotifyIcon事件。
答案 3 :(得分:1)
您可能正在寻找Opacity
属性。您可以从IDE中将Opacity
设置为0.0
。它可以在0.0
和1.0
之间取值。
答案 4 :(得分:0)
您可以尝试这样的事情:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var form = new Form1();
form.DoBeforeShow();
Application.Run(form);
}
答案 5 :(得分:0)
首先,您可以加载您想要向用户显示的表单。在构造函数中只调用应隐藏的表单。之后你可以关闭或隐藏它。