Я работаю с windowsForm в vb.Net. У меня есть одна основная форма (frmMaster), у которой есть кнопки с левой стороны и одна панель (PanelDetail) с правой стороны. У меня есть два пользовательских элемента управления, скажем, uc1 и uc2. Когда я нажал кнопку из основной формы, она правильно открывает uc1 на панели с помощью кода ниже.Как вызвать usercontrol в форме Windows
PanelDetail.Controls.Add(uc1)
uc1.Show()
Существует контрольная кнопку на Uc1 и я хочу открыть UC2, когда пользователь нажимает на кнопке с Uc1. Так что я должен добавить uc2 в PanelDetail и скрыть или удалить uc1. Чтобы сделать это, я создал публичный метод в frmMaster
Public Sub DisplayControl(ControlName As UserControl)
PanelDetail.Controls.Clear()
PanelDetail.Controls.Add(ControlName)
ControlName.Show()
End Sub
и этот метод вызывается из кнопки мыши случае Uc1 вызвать UC2
frmMaster.DisplayControl(frmMaster.vuc2)
UC2 уже объявлен как разделяемая в Основная форма, как
Public Shared vuc2 As New CtrlLeavesList
так что, когда я нажимаю на кнопку с Uc1, она очищает uc1 от панели, но не загружает UC2.
может кто-нибудь предложить мне правильный способ сделать это.
Спасибо.
Хотя законно вызывать 'formName.PublicMethod', это не значит, что вы получаете экземпляр формы.Вы можете использовать событие в UC и подписываться на форму, когда событие срабатывает, у вас есть код, выполняемый в обработчике событий, для удаления и добавления на панель другого элемента управления. – OneFineDay