2012-01-01 1 views
2

У меня есть Array name Menus. Он содержит имя формы для каждого элемента.Форма вызова vb6 с именем, содержащимся в массиве

Как я могу назвать их динамически?

Например, если меню (1) = «Вход», и меню (2) = «Выход» я должен сказать

Login.Show 

, но я хочу сделать это с помощью массива имя. Я, очевидно, не могу этого сделать:

Menus(X).Show 

Возможно ли это в VB или есть ли способ обойти это?

Заранее благодарен!

ответ

5

Что вы, по сути пытается сделать, это использовать имя формы в экземпляр и загрузить форму.

Один из способов сделать это, чтобы передать строку с именем вашей формы для Add функции Форма Collection «s:

Dim f As Form 
Set f = Forms.Add(Menus(X)) 
f.Show 

Или, используя VB6 в CallByName Функция:

Dim f As Form 
Set f = CallByName(Forms, "Add", VbMethod, Menus(X)) 
f.Show 
+0

Прохладный! Это сделал трюк. Я использовал первый метод. +1 для ваших альтернатив :) – itsols

0

Вы можете использовать следующий код:

Form form = Menus[x] as Form 
Form.show 
+1

Конечно, этот код даже не компилируется, поэтому он не является особенно хорошим «примером» ... –

+0

Что с первой строкой? Я не считаю это синтаксисом VB. – itsols