簡體   English   中英

處置后添加用戶控件

[英]Add User Control after I Disposed It

我正在通過關閉它來關閉usercontrol1,我需要以編程方式在我的form1中再次添加它。 僅當我關閉usercontrol2之后,usercontrol1才會添加回form1,后者將事件發送到form1以再次在面板中添加usercontrol1。 我知道如何發送和接收事件,但是我不知道如何再次添加usercontrol1,因為在處理完usercontrol1之后,似乎只是忽略了form1中usercontrol1的實例化。 另外,我正在使用.Dispose(),因為我想在每次調用它時觸發usercontrol1的Load事件。

您創建一個UserControl1的新實例(或任何您的usercontrol類型),然后將其添加到面板中。

public void MyTriggeringEvent(object sender, EventArgs e)
{
    UserControl1 usercontrol1 = new UserControl1();
    panel1.Controls.Add(usercontrol1);
}

MyTriggeringEvent是您要在其中重新添加usercontrol1的事件。

盡管有一種更輕松的方法來實現您想要的功能,而無需刪除並重新添加usercontrol1。

您的usercontrol1具有如下代碼:

public void usercontrol1_Load(object sender, EventArgs e)
{
    // Lots of initialization code here
}

不要將初始化代碼留在Load事件處理程序中,而是將其移到自己的方法中,然后從Load事件處理程序中調用該方法,然后在MyTriggeringEvent中調用該方法:

此代碼位於usercontrol1中:

public void MyInitCode()
{
    // Lots of initialization code here
}

public void usercontrol1_Load(object sender, EventArgs e)
{
    MyInitCode();
}

此代碼以您處理事件的形式進行:

public void MyTriggeringEvent(object sender, EventArgs e)
{
    usercontrol1.MyInitCode();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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