идентификаторы в форме Visual Basic

#vb.net #winforms

#vb.net #winforms

Вопрос:

У меня есть форма, пользователь входит в систему, и создается другая форма.

Пользователь отправляет запрос. Моя проблема в том, что я не могу вести учет того, кто делает запрос.

У пользователя есть uid и usernamae, но как только создается новая форма, в которой пользователь отправляет запрос, оба этих идентификатора исчезают.

Есть ли способ, которым я могу это преодолеть? Спасибо

Комментарии:

1. Что вы имеете в виду, «они ушли»? Вне области видимости?

2. Я имею в виду, что в моем коде для второй формы это новый класс, и я не знаю, как их найти? есть ли способ, которым я все еще могу использовать имя пользователя или uid?

Ответ №1:

Если вы сохраняете свои UID только в начальной форме, вам нужно будет передать эти значения в новую форму.

По сути, вы можете настроить области действия своих полей и сохранить свое значение в месте, доступном обеим формам, передать их в конструктор (и сохранить соответственно) или предоставить средство доступа в вашей новой форме для передачи нужных вам значений.

Чтобы ответить на ваш вопрос о конструкторе:

Ваш код в настоящее время, вероятно, выглядит следующим образом:

 Dim form2 as New Form2()
form2.Show()
  

Вам нужно будет изменить конструктор второй формы, например:

 Public Sub New() ...
  

…должно стать…

 Public Sub New(ByVal userId As String, ByVal userName As String) ...
  

А затем передайте ваши значения из первой формы (где userId и userName — это поля, в которых хранятся значения form1):

 Dim form2 as New Form2(userId, userName)
form2.Show()
  

Затем вы можете сохранить их в глобальной области видимости вашей второй формы.

Комментарии:

1. глупый вопрос, но как я могу передать их в конструктор? есть ли какие-либо ссылки или руководства о том, как это сделать? Спасибо

2. @user765942 Смотрите обновление. Извинись за любые пропуски ключевых слов, поскольку VB.NET это не мой основной язык.

3. Спасибо, Джордж, я ценю это

Ответ №2:

Вот как я перенес значение в новую форму. Кажется, это легко исправить, не понимал, что это так просто!

Затемнить значение в виде строки = CStr(Form1.ComboBox1.SelectedValue)