Поиск объектов на форме

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Поиск объектов на форме

Сообщение AndreyIl » 08.11.2005 (Вт) 12:39

Есть чужая форма. На ней: TextBox, Label, CommandButton и т.д.

Как передать фокус конкретному объекту, не зная его имя или название, и выполнить действие (нажать кнопку, изменить текст и т.д.)?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 08.11.2005 (Вт) 13:02

А что вообще известно о конкретном объекте? Только то, что его не может не быть?
Лучший способ понять что-то самому — объяснить это другому.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 08.11.2005 (Вт) 13:34

ИМХО, надо отловить hWnd всех контролов на форме, а потом просто получаем название класса и всё.

Ежели форма у тя перед глазами, то посчитай, скока раз после её загрузки надо нажать Tab для перехода к нужному контролу, потом посылай етой форме Tab'ы в нужном кол-ве, а затем пробел.
Изображение

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Поиск объектов на форме

Сообщение AndreyIl » 08.11.2005 (Вт) 16:47

Если можно, приведите код, с помощью которого можно узнать hWnd, классы и т.д.?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.11.2005 (Вт) 16:51

API-Guide еще никто не отменял + поиск по форуму конечно :lol:

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Поиск объектов на форме

Сообщение AndreyIl » 08.11.2005 (Вт) 16:57

Есть пример кода или ссылка на подобную тему, т.к. по поиску мало что нашел.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.11.2005 (Вт) 19:05

Я, точно так же как Antonariy, до сих пор не понял вопроса.
Что про нужный объект известно-то? :roll:
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 09.11.2005 (Ср) 10:05

Похоже нужно GetActiveWindow + EnumChildWindows
Лучший способ понять что-то самому — объяснить это другому.

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Поиск объектов на форме

Сообщение AndreyIl » 09.11.2005 (Ср) 11:11

Форма Form1. На ней Text1, Command1, Label1 и т.д. (как пример).

Смотрел примеры через FindWindwow и FindWindwowEx - не то.

Есть ли у кого пример кода, как это все найти на форме и совершить
действие с объектами?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.11.2005 (Ср) 11:23

tyomitch писал(а):Что про нужный объект известно-то? :roll:
Изображение

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Поиск объектов на форме

Сообщение AndreyIl » 09.11.2005 (Ср) 11:26

Я же написал: обычная форма, на ней текстовое поле, кнопка и метка.

Какая еще информация нужна?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.11.2005 (Ср) 12:07

Нужно найти все три контрола? :roll:
Код: Выделить всё
Dim c As Control
For Each c In Me
    Debug.Print c.Name
Next
Изображение

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Поиск объектов на форме

Сообщение AndreyIl » 09.11.2005 (Ср) 12:08

Нужно найти все объекты.
Форма чужая.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 09.11.2005 (Ср) 12:11

Точно, GetActiveWindow + EnumChildWindows
Лучший способ понять что-то самому — объяснить это другому.

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Поиск объектов на форме

Сообщение AndreyIl » 09.11.2005 (Ср) 12:36

Если не сложно, выложи пример.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 09.11.2005 (Ср) 13:01

Если не сложно, воспользуйся поиском.
В нете примеров на EnumChildWindows навалом, а у меня вот нет.
Лучший способ понять что-то самому — объяснить это другому.

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Поиск объектов на форме

Сообщение AndreyIl » 09.11.2005 (Ср) 14:12

Спасибо за совет.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 178

    TopList