C#在开始时隐藏新表格

Pow*_*fet 3 c# winforms

我有一个隐藏的表单,这个加载一个子表单,2e表单也应该被隐藏

请注意:我最不习惯

ShowInTaskbar = false; //  should be hidden too
Run Code Online (Sandbox Code Playgroud)

如果我使用(隐藏/可见),我最能够在表单之间进行通信,直到它的可见=真;

  this.SetParameterValueCallback += new SetParameterValueDelegate(ShowMain.SetParamValueCallbackFn);
        ShowMain.AddItemCallback = new AddItemDelegate(this.AddItemCallbackFn);
        //Showsub.Show();
        Showsub.Hide(); // not working
Run Code Online (Sandbox Code Playgroud)

到目前为止我已经尝试过

this.Visible = false; // didnt work

 BeginInvoke(new MethodInvoker(delegate
            {
                Hide();
            })); // didnt work

base.SetVisibleCore(false); // didnt work, Im not able communicate between form
Run Code Online (Sandbox Code Playgroud)

Han*_*ant 5

我真的不明白为什么你能够让它在一个而不是另一个工作.在调用Show()方法时防止表单变得可见需要重写SetVisibleCore方法.也许您可以利用此代码:

private bool mAllowVisible = false;

public bool ReallyVisible {
  get { return mAllowVisible; }
  set {
    mAllowVisible = value;
    if (value) this.Visible = true;
  }
}

protected override void SetVisibleCore(bool value) {
  if (value && !IsHandleCreated) CreateHandle();  // Ensure Load event runs
  if (!ReallyVisible) value = false;
  base.SetVisibleCore(value);
}
Run Code Online (Sandbox Code Playgroud)