从 Panel1 中的 userControl1 按钮将 userControl2 添加到 Panel2
Add userControl2 to Panel2 from userControl1 button in Panel1
如何从点击 userControl1 的按钮到 panel2 获取 userControl2?
按下按钮 New
在 Panel1
上显示 userControl1
控件,但我想通过按下 userControl1
按钮显示 usercontrol2
到 panel2
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();
如何从点击 userControl1 的按钮到 panel2 获取 userControl2?
按下按钮 New
在 Panel1
上显示 userControl1
控件,但我想通过按下 userControl1
按钮显示 usercontrol2
到 panel2
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();