powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Перехватка клавиатурных событий формой
3 сообщений из 3, страница 1 из 1
Перехватка клавиатурных событий формой
    #32270493
D_Grot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый All!

Не сталкивался ли кто с проблемой, подобной моей (VS.NET 1.0, C#):

Есть виндоуз-форма, на которой панель с рисунком и два скроллбара.
Рисунок представляет собой таблицу с начинкой, по ячейкам таблицы передвигаемся посредством события KeyDown, перехватываемого формой.

Все было замечательно, пока не добавил на форму текстбокс для редактирования содержимого ячеек таблицы.

Изначально текстбокс невидим, визуализируется двойным кликом на соответствующей ячейке. После ввода в него текста и нажатия Escape содержимое текстбокса переносится в ячейку таблицы, а сам текстбокс скрывается.

Но после этого никаким образом не удается вернуть фокус форме, чтобы она реагировала на событие KeyDown, скотина. this.Focus(), вроде ее активизирует, судя по значению this.Focused в QuickWatch'е, но событие не вызывается, а реагировать начинают скроллбары, хотя их никто не просит.

Куда копать, может кто знает?
...
Рейтинг: 0 / 0
Перехватка клавиатурных событий формой
    #32301958
int33h
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
A ne proboval vmesto Esc ispolizovati druguiu knopku(tipa F1)
...
Рейтинг: 0 / 0
Перехватка клавиатурных событий формой
    #32302101
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в следующем, насколько я помню, форма имеющая контролы НЕ МОЖЕТ получить фокус, в этом и есть твоя проблема, пока контрола небыло - все путем, он появился - срабатывает чего то и фокуса нет. Обьяснения этому(разумного) я не нашел. MSDN говорит "Нельзя значит нельзя." Т.е. она может быть активна но уже без фокуса.
Вариант:
Для ввода текста использовать InputBox или другую форму. Можно также попытаться насильно передать ей фокус через SetFocus, но не уверен сработает ли.


Magnus
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Перехватка клавиатурных событий формой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]