Фокус на контрол по его Tabindex без перебора всех контролов

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Фокус на контрол по его Tabindex без перебора всех контролов

Сообщение Space » 28.01.2007 (Вс) 5:27

1. Плиз, как?

2. Модераторам - длина темы топика маловата, да и то в поиске показывается не полностью, зато гордо перед названием темы показывается в поиске надпись - Конференции VBStreets :: Просмотр темы - Здесь усечённая т... :)

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 28.01.2007 (Вс) 10:52

А чем перебор не нравится?

Без перебора никак :)

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Сообщение Space » 28.01.2007 (Вс) 11:24

а зачем перебирать 250 (а как появятся динамические массивы контролов, будет ещё больше) контролов в таймере? Не жирно ли? Тем более, TabIndex известен, неужно нет способа напрямую обратиться (имя контрола узнать, например)? Ну, а если перебор контролов нагружает прогу не более, чем перебор переменных, то можно. Хотя, некрасиво это...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 28.01.2007 (Вс) 11:57

Так. Явно что-то недоговорено. Зачем тут таймер, совершенно непонятно.
Что в итоге нужно сделать?

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Сообщение Space » 28.01.2007 (Вс) 13:33

я думал, что возможно в таймере, но пока я не уверен, пока не решится вопрос с перехватом клавиши Tab формой, в другом моём топике.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 28.01.2007 (Вс) 13:42

Что надо в итоге?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 28.01.2007 (Вс) 13:52

Забавно, Amedу, за последнее время приходится уже наверное четвёртый раз отвечать на этот вопрос, и давай код For Each .. In Me.Controls


Space
Обещаю, что ничего кроме перебора ты не сможешь сделать в данном случае. Если известно Name контролла, на который надо перескочить, то делается очень легко - Me.Controls("ItsName").SetFocus . Но это правда если нет массива контроллов.

Н счёт таймера: раньше (давным-давно) я всегда юзал таймер когда мне надо было выполниить какое то действие, и я не знал куда поместить, например при выборе пункта в DropDownList - я думал что будет происходить событие Change однако оно не происходило. Я сделал таймер с интервалом 100 - который проверял, не изменилось ли случаем ListIndex у этого списка. Это был кривой методо - страшно кривойю. Событие потом нашлось - это событие Click(). И код стал куда быстрее, безбажнее, с самое главное - правильнее. Поэтому по опыту говорю, лучше потратить немного времени, и поэксперементировать с каждым событием чем заменять [правильный-подход] таймером.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

SGO
Обычный пользователь
Обычный пользователь
 
Сообщения: 86
Зарегистрирован: 08.01.2007 (Пн) 12:58

Сообщение SGO » 21.03.2007 (Ср) 19:02

У меня подобный вопрос... на форме есть отслеживание клавиатуры, при нажатии на какие-то кнопки на ней, клавиатура отслеживается уже не на форме, а на той кнопке. А так как эти кнопки ещё и самодельные, то вызываемые окна с центрирование "по own" центрируются естественно уже не по форме, а по той кнопке, как быть???


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

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

Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 96

    TopList