如何通过按下另一个用户控件的按钮在面板中添加用户控件?

我有一个panel1,2个用户控件uc1和uc2。 uc1被添加到面板中。 uc1有一个buttonUC1。 当我单击该按钮时,我想隐藏uc1并显示另一个按钮UC2的uc2。 通过单击buttonUC2,我想隐藏uc2并在面板中显示uc1。

虽然您可以向父表单上的面板添加,显示或隐藏其他控件,但最好是在单击按钮时从包含按钮的用户控件引发事件,然后在表单中订阅该事件,执行您需要的操作,例如隐藏您的控件并在窗体上的面板上显示其他用户控件。

了解更多:

  • 处理和提高事件

例:

UserControl1的代码:

 [System.ComponentModel.DefaultEvent("ButtonClicked")] public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); button1.Click += button1_Click; } public event EventHandler ButtonClicked; protected virtual void OnButtonClicked(EventArgs e) { var handler = ButtonClicked; if (handler != null) handler(this, e); } private void button1_Click(object sender, EventArgs e) { OnButtonClicked(EventArgs.Empty); } } 

然后在表单中使用该事件:

 private void userControl11_ButtonClicked(object sender, EventArgs e) { MessageBox.Show("Button of UserControl1 Clicked!"); //or for example, userControl11.Hide(); userControl21.Show(); } 

不要忘记在表单上订阅ButtonClicked事件,使用属性网格事件选项卡或代码,或者只是在设计时双击表单上的userControl11