Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Обращение к форме Добавлено: 07.08.04 00:49  

Автор вопроса:  Reborn
Человеки, помогите:

Есть ListBox и есть формы, у которых Name равно Items в этом ListBox. Name форм задается в процессе работы программы, следовательно в программном коде к ним я обратится не могу.
Как можно сделать так, чтобы обращаться к формам, используя ListBox.

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #1
Добавлено: 07.08.04 01:38
 Можно циклом. Но только если форма уже загружена.

Private Sub Form_Click()
 EnumFrm "Form1"
 EnumFrm "Form2" 'Получишь ошибку
 Form2.Show
 EnumFrm "Form2"
End Sub

Sub EnumFrm(FormName As String)
 For a = 0 To Forms.Count - 1
  If Forms(a).Name = FormName Then Forms(a).Caption = "* " & Forms(a).Caption: Exit Sub
 Next a
 MsgBox "Форма не найдена или не загружена.", 48, FormName
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 07.08.04 01:42
А почему ты динамически задаешь именно Form.Name а не к примеру Caption? Неужели никак нельзя обойти это?
Как мне кажется если формы создаются динамически, то вариант решения тут только один- использовать массив форм. В этом случае у тебя будет одно и тоже имя формы и одни и те же обработчики событий,но будут разные индексы, которые ты можешь загнать в свойство ItemData твоего ListBox, и спокойно работать со своими формами..

Ответить

Номер ответа: 3
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #3 Добавлено: 09.08.04 11:51
Проблема в том, что формы могут быть разными. Ежели однотипные - определенно массив. Иначе - цикл, но имя использовать не получится. Для подобных вещей есть Caption и Tag. Можно, конечно, и через hWnd :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам