[英]How to add a User Control in a Panel from a button click of another User Control?
我有一個panel1,2個用戶控件uc1和uc2。 uc1已添加到面板中。 uc1有一個按鈕UC1。 當我單擊該按鈕時,我想隱藏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();
}
不要忘記使用屬性網格事件選項卡或代碼或在設計時雙擊表單上的userControl11
來訂閱ButtonClicked
上的ButtonClicked
事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.