Форма вызова vb6 с именем, содержащимся в массиве

У меня есть массив с именем Menus. Он содержит имя формы для каждого элемента.

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

Например, если Меню(1) = "Войти" и Меню(2) = "Выйти", мне нужно сказать

Login.Show

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

Menus(X).Show

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

Заранее спасибо!


person itsols    schedule 01.01.2012    source источник


Ответы (2)


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

Один из способов сделать это — передать строку с именем формы в функцию Add формы Collection:

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
person Jay Riggs    schedule 01.01.2012
comment
Прохладный! Это помогло. Я использовал первый метод. +1 за ваши варианты :) - person itsols; 01.01.2012

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

Form form = Menus[x] as Form 
Form.show
person iXcoder    schedule 01.01.2012
comment
Конечно, этот код даже не компилируется, так что это не очень хороший пример... - person Cody Gray; 01.01.2012
comment
Что с первой строкой? Я не узнаю это как синтаксис VB. - person itsols; 01.01.2012