2015-08-14 3 views
0

Есть ли способ доступа к переменной в Form_Load из обработчика событий?Доступ к переменной доступа в общем суб

Пожалуйста, не обращайте внимание на код, это всего лишь представление моего вопроса.

Public Class Form 

Public Sub Form_Load() 
Dim x as string 
x = MyClass.MethodGetValue() 
End Sub 

Private Shared Sub OnChanged() 
MyClass2.MethodGetValue(x) 
End Sub 

End Class 
+0

до тех пор, как 'x' объявляется на уровне формы, вы должны быть хорошо ... * * Вот почему код * делает * дело – Plutonix

+0

да, жаль, что я забыл поставить в декларации там. Отредактировал вопрос. Я попытался объявить его на уровне формы, однако он дает мне сообщение «Невозможно ссылаться на экземпляр члена класса из общего метода». – nonoy

+0

Я думаю, что это решило проблему, я объявила переменную на уровне формы как общую. Благодаря! – nonoy

ответ

2

Речь идет о сфере действия переменной. В вашей ситуации вам нужна переменная класса. Это позволяет использовать его везде внутри этого класса.

Public Class Form1 
    Private x As Object 'pick the datatype that matches your needs 
    Public Sub Form_Load() 
    x = MyClass.MethodGetValue() 
    End Sub 

    Private Sub OnChanged() 
    MyClass2.MethodGetValue(x) 
    End Sub 
End Class 
+0

попробовал это, он дает мне «Невозможно обратиться к члену экземпляра класса из общего метода». Ошибка – nonoy

+0

Правильно, замените sub на это. Это защитная мера, так как класс общего метода не должен быть инициализирован, и эта переменная будет нулевой. – OneFineDay

Смежные вопросы