2010-05-26 2 views
0

с помощью:.NET Reflection

Dim a As [Assembly] = [Assembly].LoadFile("C:\test.exe") 


Dim testTP As Type 
testTP = a.GetType("SplashScreen", True, True) 

obj1 = Activator.CreateInstance(testTP) 

obj1.show() 

мой прог сделал отражение в TEST.exe> ​​SplashScreen загружены, также obj1 заполнены

когда SplashScreen расположен -> MainForm загружен> obj1 isnothing!

при попытке получить доступ к obj1 VS сказать:

AccessibilityObject = { "Может не доступа, который расположенный объект объекта. Имя: 'SplashScreen'"}

Я хочу всегда obj1 заполненными из активной формы! как????

+0

Я не понимаю смысла фразы «Я хочу всегда obj1 заполняться из активной формы». Пожалуйста, объясните, что именно вы хотите. –

+0

, когда SplashScreen установлен -> MainForm загружен ===== как «заполнить» obj1 из MainForm или каким-то образом манипулировать экземпляром MainForm (?) – takis

+0

Можете ли вы предоставить более подробную информацию? Где этот код в вашем приложении? Где находится * obj1 * доступ, что вызывает проблему? Делает ли * obj1 * попытку сделать что-то с помощью * SplashScreen *? – GalacticCowboy

ответ

0

Способ, которым написан ваш код, то, что вы хотите сделать, невозможно. Вы создаете экземпляр SplashScreen; когда таймер тикает, он запускает основную форму, а затем распределяет себя. ("Me.Close()") Ваш экземпляр этого объекта теперь недействителен. Кроме того, вы не можете обновить свой объект до экземпляра основной формы, так как это разные типы.

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

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