Хорошо, я возьму из вашего вопроса столько, сколько смогу, и покажу вам пример, есть много разных способов, которыми вы могли бы сделать это, таким образом, может не ответить на ваш вопрос на 100%, но даст вам достаточно, чтобы получить то, чтовы хотите.
Я предполагаю, что у вас есть только один элемент управления 1 и один элемент управления 2.
Мой пример будет чередоваться и обращаться к подпрограмме в активном (показанном) пользовательском контроле на каждомнажмите на кнопку основной формы.
В модуль я бы положил:
Public control1 As New UserControl1
Public control2 As New UserControl2
В UserControl1 положить:
Public Sub DoSomething()
Me.BackColor = Color.Black
End Sub
В UserControl2 положить:
Public Sub DoSomething()
Me.BackColor = Color.White
End Sub
В вашем событии FormLoad вставьте:
control1.Location = New Point(0, 0)
control1.Size = New Point(1351, 533)
Panel1.Controls.Add(control1)
В вашем событии нажатия Button1 положите:
Select Case Panel1.Contains(control1)
Case True
'Remove UserControl1 - Add UserControl2
Panel1.Controls.Remove(control1)
control2.Location = New Point(0, 0)
control2.Size = New Point(1351, 533)
Panel1.Controls.Add(control2)
control2.DoSomething()
Case False
'Remove UserControl2 - Add UserControl1
Panel1.Controls.Remove(control2)
control1.Location = New Point(0, 0)
control1.Size = New Point(1351, 533)
Panel1.Controls.Add(control1)
control1.DoSomething()
End Select
Выше проверяется, какой UserControl находится на панели, и чередует его ивызывая «DoSomething».Это просто пример, чтобы дать вам идею.То, что вы хотите, может отличаться, у вас может быть кнопка во втором пользовательском элементе управления, и если да, измените код переключателя, чтобы он подходил.