powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Forms collection
9 сообщений из 9, страница 1 из 1
Forms collection
    #34467173
Arthur26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Такой вопрос:
Как можно с помощью коллекции Forms обратиться к конкретной форме по имени? Например, так
ActiveFormName = Me.ActiveForm.Name
в строковую переменную ActiveFormName запоминаю имя формы, затем выполняю действие, и когда хочу обратиться к форме, скажем
Forms(ActiveFormName).Visible = True, то выдает сообщение об ошибке "Type mismatch".

И 2-ой вопрос:
Ме - (Me.Visible) можно заменить чем-то другим, кроме имени формы?

Спасибо.
...
Рейтинг: 0 / 0
Forms collection
    #34467232
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Нельзя потому что можно создать несколько экземпляров одной формы.
2. Можно Me вообще не писать.
...
Рейтинг: 0 / 0
Forms collection
    #34467541
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy1. Нельзя потому что можно создать несколько экземпляров одной формы.
Я так понимаю, что вопрос не в создании нескольких экземпляров одной формы, а в поиске уже открытой, но не видимой.
Можно в цикле перебрать все формы в коллекции и проверять название на соответствие запомненному имени.
Хотя может проще запомнить не название формы а ссылку на форму?
Т.е. frmActiveForm = Me.ActiveForm, а затем frmActiveForm.Visible = True
...
Рейтинг: 0 / 0
Forms collection
    #34467560
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй так например:

Код: plaintext
1.
set x = CallByName(Forms, "Add", VbMethod, "Form1")
CallByName x, "Show", VbMethod

VB под рукой нету, не могу проверить.


Magnus
...
Рейтинг: 0 / 0
Forms collection
    #34468445
Arthur26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но никак невозможно обратиться к форме по имени (в проекте каждая форма в одном экземпляре)? Скажем, Forms("frmMain").
...
Рейтинг: 0 / 0
Forms collection
    #34468508
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам же дали кучу советов.
Напишите метод, который будет перебирать все формы и искать нужную форум. Тогда в основном коде Вам будет достаточно обратиться к этому методу и передеть имя (FindForm("frmMain"))
Или создайте свою собственную коллекцию форм, у которой будет поиск по имени.
...
Рейтинг: 0 / 0
Forms collection
    #34469592
Arthur26
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дорогой FAndrew, я хотел бы знать в VB 6.0 можно обратиться к форме по имени формы? Например, не Forms(0), а типа Forms("Form1").
Если да, то как, пожалуйста.
...
Рейтинг: 0 / 0
Forms collection
    #34469863
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну не принимает Forms строку, хоть об стену убейся.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Public Function Forms2(Name as String) as Form
Dim x as Integer
    For x =  0  to Forms.Count -  1 
        If Forms(x).Name = Name Then
            Set Forms2 = Forms(x).Name
            Exit For
        End if
    Next
End Function
Такой вариант устраивает?
...
Рейтинг: 0 / 0
Forms collection
    #34470515
FAndrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyТакой вариант устраивает?
Я бы еще реализовал на цикле For Each.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Forms collection
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]