Krizzia Mostaza Ответов: 1

Как получить доступ к текстовому полю пользовательских элементов управления из формы?


Этот код от frmBillingPatient..

моя проблема в том, что когда я выбираю строку в patientListView, я не могу поместить ее в lblTry в frmBillingManagement, она не работает. Но он работает с frmMain.

Примечание:
frmBillingManagement - это пользовательский контроль
frmMain-это форма

Спасибо!

Что я уже пробовал:

Public Sub patientListView_MouseClick(sender As Object, e As MouseEventArgs) Handles patientListView.MouseClick
patientID = patientListView.FocusedItem.SubItems(1).Text
frmMain.Label1.Text = patientID.ToString
frmBillingManagement.lblTry.Text = patientID.ToString
frmBillingManagement.Refresh()
frmBillingManagement.lblTry.Refresh()
Me.Close()
End Sub

[no name]

Обнародование ваших элементов управления-ужасная идея.

Krizzia Mostaza

я просто попробовал это сделать, потому что думал, что это проблема . но я снова сменил его на частный. ты можешь мне помочь?

[no name]

Посмотрите " свойства в VB.NET"

1 Ответов

Рейтинг:
7

Richard Deeming

VB.NET предоставляет экземпляр по умолчанию каждой формы в приложении Windows Forms, в первую очередь для обратной совместимости с VB6.

Экземпляры объектов, предлагаемого по умолчанию мои.Формы и мой.Веб-Сервисов (Visual Основные)[^]
Мой.Объект Формы [^]
Работа с несколькими формами в Visual Basic .NET: обновление до .NET[^]

Итак, когда вы ссылаетесь frmMain.something, вы на самом деле имеете в виду экземпляр класса по умолчанию frmMain.

То же самое нет сделано для пользовательских элементов управления. Экземпляр пользовательского элемента управления без содержащей его формы не будет служить никакой цели. И поскольку элемент управления может использоваться несколько раз в нескольких различных формах, не было бы никакого разумного способа выбрать один экземпляр "по умолчанию".

Вместо этого пользовательский элемент управления будет представлен как (один или несколько) членов, содержащих формы. Каждому экземпляру элемента управления будет присвоен идентификатор, который можно изменить с помощью конструкторского представления.

Итак, если ваш экземпляр элемента управления находится в текущей форме с идентификатором billingManagement1, вы бы использовали:

billingManagement1.lblTry.Text = patientID.ToString()

Если бы он был включен frmMain:
frmMain.billingManagement1.lblTry.Text = patientID.ToString()