Вы создаете новый экземпляр 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();
}