this.Hide()不在新项目中工作

时间:2014-05-26 09:16:22

标签: c# .net winforms

在我需要的时候,我总是在this.Hide中使用Form1_Load(...)并且它始终有效。但是现在在一个新项目中,this.Hide无法在任何地方工作,这是我唯一的代码!

private void Form1_Load(object sender, EventArgs e)
{
    this.Visible = false;
    this.Hide();
}

为什么表格不隐藏?

5 个答案:

答案 0 :(得分:2)

它在Load中调用时无法正常工作。负载在实际可见之前发生,因此您无法将其隐藏起来。

你也应该在询问之前进行搜索:

why isn't this.Hide() working in Form1_load event?

Hiding forms on startup: why doesn't this.Hide() hide my form?

答案 1 :(得分:1)

Load事件为时尚早隐藏Form,因为它尚未显示。

覆盖OnShown方法时,它对我有效:

protected override void OnShown(EventArgs e)
{
    base.OnShown(e);

    this.Visible = false;
    this.Hide();
}

或者,当然,为Shown事件创建一个处理程序。

这两个电话中的任何一个都很好。你不需要两者。

答案 2 :(得分:1)

来自here

private bool mShowAllowed;
protected override void SetVisibleCore(bool value)
{
    if (!mShowAllowed) value = false;
    {
        base.SetVisibleCore(value); 
    }
}

答案 3 :(得分:0)

或者您只需隐藏在Form1的Shown事件中:

  private void Form1_Shown(object sender, EventArgs e)
    {
        this.Hide();
    }

答案 4 :(得分:0)

对我而言,这是有效的。

  private void Form1_Load(object sender, EventArgs e)
  {
      this.Opacity = 0;
  }