#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)