从 Panel1 中的 userControl1 按钮将 userControl2 添加到 Panel2

Add userControl2 to Panel2 from userControl1 button in Panel1

如何从点击 userControl1 的按钮到 panel2 获取 userControl2?

按下按钮 NewPanel1 上显示 userControl1 控件,但我想通过按下 userControl1 按钮显示 usercontrol2panel2 userControl2。我做不到。

private void btnNewDay_Click(object sender, EventArgs e) {
  frmMain main = new frmMain();
  main.panel2.Controls.Clear();
  userControls.ucNewDay newDay = new userControls.ucNewDay();
  main.panel2.Controls.Add(newDay);
  main.userControlcontrol = true;
}

您正在使用 new frmMain(); 创建一个新表单。您需要的是获取当前窗体的句柄。您可以通过简单地使用 this 关键字来做到这一点,但这甚至是可选的,您不必使用任何东西。但是,在用户控件中,this 指的是控件。在这种情况下使用 Parent 属性.

更改第一行:

frmMain main = new frmMain();

至:

frmMain main = (frmMain)this.Parent;

或者,您可以使用 FindForm() 方法:

frmMain main = (frmMain)this.FindForm();