2016-12-20 5 views
-1

Я пытаюсь инициализировать общедоступную переменную в vb.net 2013 в форме и установить для нее значение из вида сетки данных, а затем использовать ее значение в форме пыльника, когда я использую ее значение нулевойИнициализировать общедоступную переменную

здесь инициализация

Public IdSt As Long 

установленное значение для его

 IdSt = Me.DataGridView1.SelectedRows(0).Cells(0).Value 

и это, где я использую его

Dim std As Long 
    If logIn.flag = True Then 

     std = logIn.idstu 
    Else 

     std = CourseReq.IdSt 
    End If 
+1

vba <> vb.net. Я удалил тег vba. –

+0

Пожалуйста, не добавляйте теги в заголовок. Я удалил его. Пожалуйста, прочитайте [ask] AndAlso возьмите [тур]. Возможно, вы сбиваете с толку уровень доступа ('Public') с помощью' Scope'. Кто может видеть/использовать 'Idst', зависит от ***, где *** это decalred – Plutonix

+2

Итак, в чем ваш вопрос? В чем проблема? – Dai

ответ

0

Похоже, что вы не ссылаетесь на правильный объект.

Позвольте мне пример, если у вас есть две формы, называемые MainForm и SecondForm и объявить их как это:

Dim myMainForm as New MainForm 
Dim mySecondForm as New SecondForm 

Если вы пытаетесь получить доступ IDST делая MainForm .IdSt, что это не то же самое, myMainForm .IdSt.

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

+0

от имени то же самое, и я уверен в этом, когда я пытаюсь показать значение переменной в том же виде, выход правильный, когда я вызываю его в другой форме, значение становится 0, поэтому я думаю, что форма просто напечатает начальное значение –

+0

i am извините, у меня плохой английский –

+0

Не используйте одно и то же имя формы. Убедитесь, что объект имеет другое имя, чем класс, как в моем примере выше. Тогда вы должны найти проблему. –