Set Focus

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

Set Focus

Сообщение Alec » 25.10.2008 (Сб) 13:25

Есть UserControl, на нем два ScrollBar. Хочу заставить выполнять его какие-либо действия при нажатии клавиш, но проблем в том, что фокус всегда оказывается на одном из ScrollBar. Каким образом заставить UserControl получать фокус и обрабатывать события KeyDown?
Иногда лучше вовремя остановиться...
И начать заново!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Set Focus

Сообщение iGrok » 25.10.2008 (Сб) 13:35

М.б. UserControl.KeyPreview = true ?
label:
cli
jmp label

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: Set Focus

Сообщение Alec » 25.10.2008 (Сб) 13:41

iGrok писал(а):М.б. UserControl.KeyPreview = true ?

Оно самое это да.
Но фокус то остается на ScrollBar, а он тоже должен двигаться...
Есть идея поместить какой нибудь контрол, спрятать его например под ScrollBar'ом, и считать, что фокус на ней имеет отношение к UserControl в целом... Но она кажется мне как-то кривоватой. И как тогда узнать имеет ли контрол фокус?
Иногда лучше вовремя остановиться...
И начать заново!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Set Focus

Сообщение iGrok » 25.10.2008 (Сб) 14:00

Alec писал(а):
iGrok писал(а):М.б. UserControl.KeyPreview = true ?

Оно самое это да.
Но фокус то остается на ScrollBar, а он тоже должен двигаться...
Есть идея поместить какой нибудь контрол, спрятать его например под ScrollBar'ом, и считать, что фокус на ней имеет отношение к UserControl в целом... Но она кажется мне как-то кривоватой. И как тогда узнать имеет ли контрол фокус?

Эээ.. Ещё раз? )
Ты про то, что фокус висит на скроллбаре, и он двигается при нажатии клавиш? Или что-то другое?
label:
cli
jmp label

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: Set Focus

Сообщение Alec » 25.10.2008 (Сб) 15:38

iGrok писал(а):Эээ.. Ещё раз? )

Сейчас фокус попадает на один из скролбаров, и при нажатии стрелок идет скролл.
Мне нужно оставить возможность прокрутки стрелками, когда фокус на скроллбаре, и сделать обработку клавиш UserControl'ом, когда фокус не на скролбаре (но на UserControl'е), и я не знаю куда поместить для этого фокус.
В принципе, обработку клавиш скролбалом можно и убрать, но как (куда?) убрать с него фокус, а то он мигает...
Иногда лучше вовремя остановиться...
И начать заново!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Set Focus

Сообщение iGrok » 25.10.2008 (Сб) 19:17

Эмм.. Ну можно, конечно, кинуть какой-то ещё контрол, и отдавать фокус ему.. Не знаю, есть ли способ получше. (
label:
cli
jmp label

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: Set Focus

Сообщение Alec » 27.10.2008 (Пн) 22:10

Так и пришлось делать...
При UserControl_EnterFocus, KeyUp и Change у скроллбаров перекидываю фокус на CommandButton, который находится за пределами ScaleWidth, а по его событиям KeyUp, KeyDown делаю соответствующие RaiseEvents.
Все равно, кажется кривовато как-то...
И еще, как можно привязать SpinButton к TextBox, опять же оставляя фокус на TextBox. Пытался повторить тот же способ, но тогда кнопочки со стрелками визульно не нажимаются и не происходит при длительном нажатии нескольких изменений... Где-то что-то я не догоняю.
Иногда лучше вовремя остановиться...
И начать заново!


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

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

Сейчас этот форум просматривают: Google-бот и гости: 56

    TopList