Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Фокус урод Добавлено: 27.12.08 14:29  

Автор вопроса:  VβР| Web-сайт: www.homacosoft.com
Что нужно сделать с юзерконтролом, чтобы он при нажатии клавишь влево/вправо перехватывал их своии эвентом, а не тупо отдавал фокус другому контролу?


Заранее благодарен.

Ответить

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

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



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #1
Добавлено: 27.12.08 15:04
Property KeyPreview As Boolean
    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-сайт: www.homacosoft.com
 Профиль | | #2
Добавлено: 27.12.08 15:08
KeyPreview = True, проблема в том, что он хавает любые сочетания клавишь кроме Del, KeyLeft и KeyRight - что не тема.

Ответить

Номер ответа: 3
Автор ответа:
 VβÐ



Вопросов: 15
Ответов: 194
 Web-сайт: www.homacosoft.com
 Профиль | | #3
Добавлено: 28.12.08 09:56
Нерод, ну помогите плиз!

Ответить

Номер ответа: 4
Автор ответа:
 VβÐ



Вопросов: 15
Ответов: 194
 Web-сайт: www.homacosoft.com
 Профиль | | #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-сайт: www.homacosoft.com
 Профиль | | #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)
    ;Debug.Print KeyCode
End Sub

Ответить

Номер ответа: 8
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #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, конечно.
Первый случай к одному контролу с несколькими элементами, второй - к разным контролам.
Да и вообще после пива я не понимаю сути проблемы :)

Ответить

Страница: 1 |

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



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