簡體   English   中英

如何通過單擊另一個用戶控件的按鈕在面板中添加用戶控件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM