Страница: 1 |
Страница: 1 |
Вопрос: Фокус урод
Добавлено: 27.12.08 14:29
Автор вопроса:
VβÐ | Web-сайт:
Что нужно сделать с юзерконтролом, чтобы он при нажатии клавишь влево/вправо перехватывал их своии эвентом, а не тупо отдавал фокус другому контролу?
Заранее благодарен.
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #1
Добавлено: 27.12.08 15:04
Member of VB.UserControl
Returns/sets whether keyboard events for an object are invoked before keyboard events for controls on that object.
Номер ответа: 2
Автор ответа: VβÐ
Вопросов: 15
Ответов: 194
Web-сайт:
Профиль | | #2
Добавлено: 27.12.08 15:08
KeyPreview = True, проблема в том, что он хавает любые сочетания клавишь кроме Del, KeyLeft и KeyRight - что не тема.
Номер ответа: 3
Автор ответа: VβÐ
Вопросов: 15
Ответов: 194
Web-сайт:
Профиль | | #3
Добавлено: 28.12.08 09:56
Нерод, ну помогите плиз!
Номер ответа: 4
Автор ответа: VβÐ
Вопросов: 15
Ответов: 194
Web-сайт:
Профиль | | #4
Добавлено: 28.12.08 09:56
Нерод, ну помогите плиз!
Номер ответа: 5
Автор ответа: Father
Вопросов: 0
Ответов: 159
Профиль | | #5
Добавлено: 28.12.08 12:04
Вопрос не так прост. Видишь ли в чем дело, дочерние контролы расположенные на usercontrol могут по разному реагировать на WM_GETDLGCODE. Если они не возвращают DLGC_WANTARROWS, тогда происходит табуляция по умолчанию и KeyPreview не реагирует. Я по-приколу делал цикл GetMessage и в нем обработку перед IsDialogMessage. Помогало, keypreview работал.
Но может есть решение и лучше, не влезая в дебри. Что у тебя на usercontrol?
Номер ответа: 6
Автор ответа: VβÐ
Вопросов: 15
Ответов: 194
Web-сайт:
Профиль | | #6
Добавлено: 28.12.08 12:41
Ничего. Отрисовку делаю с нуля, сравнивая координаты.
Номер ответа: 7
Автор ответа: Father
Вопросов: 0
Ответов: 159
Профиль | | #7
Добавлено: 28.12.08 13:07
А... Тогда что я тут распинаюсь.
Private Sub UserControl_KeyDown(KeyCode As Integer, Shift As Integer)
 ebug.Print KeyCode
End Sub
Номер ответа: 8
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #8
Добавлено: 28.12.08 14:02
Для извращенцев могу еще предложить хук оконной процедуры
Номер ответа: 9
Автор ответа: Father
Вопросов: 0
Ответов: 159
Профиль | | #9
Добавлено: 28.12.08 14:13
Все тут маньяки, но у каждого нюансы..
Номер ответа: 10
Автор ответа: LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #10
Добавлено: 30.12.08 15:13
У многих контролов есть событие Validate. Оно рулит
Номер ответа: 11
Автор ответа: LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #11
Добавлено: 30.12.08 15:15
Ну, не считая события LostFocus, конечно.
Первый случай к одному контролу с несколькими элементами, второй - к разным контролам.
Да и вообще после пива я не понимаю сути проблемы