Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2016, 18:35   #1
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию Некоторые вопросы о событиях

Добрался я до изучение событий. Сразу же появились некоторые вопросы касательно методов и свойств, которые используются в этом плане.
1. Имеются события KeyDown и KeyUp. Если первое происходит при нажатии клавиши, то вторая при отпускании клавиши. Не особо понятно, для чего эту 2 метода? Ведь если клавиша нажата, то она по-любому будет отжата. Какой смысл использовать обо свойства. Как я вижу можно использовать только KeyDown. Это излишество?
2. Про какой фокус идёт речь в документации?
Цитата:
Происходит при нажатии клавиши, если элемент управления имеет фокус.
hoz вне форума Ответить с цитированием
Старый 21.04.2016, 19:11   #2
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

По поводу первого пример простой - гугл карты: перемещение по полю происходит только после нажатия клавиши, но до отпускания.

Про фокус - то же самое, что и с окнами. Если открыть два окна notepad.exe, то нажатие сочетаний Ctrl+O перехватится только тем окном, у которой установлен фокус. Окно - это элемент управления, точно такое же как и кнопка, текстовое поле и т.п.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 21.04.2016, 19:35   #3
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
Про фокус - то же самое, что и с окнами. Если открыть два окна notepad.exe, то нажатие сочетаний Ctrl+O перехватится только тем окном, у которой установлен фокус. Окно - это элемент управления, точно такое же как и кнопка, текстовое поле и т.п.
И чем же этот фокус перемещать?
hoz вне форума Ответить с цитированием
Старый 21.04.2016, 19:40   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Руками на мышке и клавиатуре например.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.04.2016, 14:25   #5
DennerV
Пользователь
 
Регистрация: 14.05.2009
Сообщений: 44
По умолчанию

На клаве - TABом
свойство TabIndex определяет порядок перемещений
DennerV вне форума Ответить с цитированием
Старый 22.04.2016, 17:02   #6
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Ещё есть одна непонятка. Я заметил, что имеются смежные события типа KeyDown и PreviewKeyDown. Если назначение первого понятно, то второго - нет.
Мои мысли такие: в винде при нажатии сочетания "Ctrl+d" происходит событие - сворачивание окон. Вот именно событие - сворачивание окон и является целью нажатия горячей клавиши, а точнее, сочетания клавиш "Ctrl+d". На выходе при нажатии сочетания клавиш "Ctrl+d" произойдёт событие KeyDown. С чего бы то вдруг тут будет иметь место событие PreviewKeyDown?
hoz вне форума Ответить с цитированием
Старый 23.04.2016, 02:53   #7
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Например, по событию PreviewKeyDown можно отменить подписку на событие KeyDown или изменить поведение.

Всё это на MSDN очень хорошо расписано. С примерами.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 23.04.2016, 23:49   #8
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
Например, по событию PreviewKeyDown можно отменить подписку на событие KeyDown или изменить поведение.

Всё это на MSDN очень хорошо расписано. С примерами.
Если на основании некоторых триггеров событие должно быть сформировано, зачем отменять подписку на это событие? Это же излишество...
На MSDN я смотрю, разумеется, но как-то не всё однозначно.
hoz вне форума Ответить с цитированием
Старый 24.04.2016, 01:37   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

начнем с того что превью c превью там есть вроде разница с тем что кто и когда его получает, его вроде может получить родительское окно на дочернее окно.
(тут не уверен точно)

Цитата:
Ведь если клавиша нажата, то она по-любому будет отжата.
а как вы узнаете что она была отжата?
возьмите те же игры.
вам вообще не всегда нужна пара Down/Up, часто достаточно и Press.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 24.04.2016 в 01:40.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.04.2016, 14:06   #10
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а как вы узнаете что она была отжата?
возьмите те же игры.
Так можно проверить отжата она или нет. Но не обязательно ж для этого превью применять... Методы же есть для этого. Я где-то видел. Хотя меня это всё пригрузило. Очень много свойство, методов и тд, связанных с событиями.

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вам вообще не всегда нужна пара Down/Up, часто достаточно и Press.
Я тоже об этом подумал.

Последний раз редактировалось hoz; 24.04.2016 в 14:59.
hoz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некоторые вопросы для тех кто работал с ЭЦП Mr.Pirate Безопасность, Шифрование 19 26.03.2015 16:59
Некоторые вопросы по скачиванию HTML страницы Oleg_SS Работа с сетью в Delphi 31 15.05.2014 14:48
Некоторые вопросы по тесту Bags Общие вопросы Delphi 7 06.01.2012 14:39
Переменные в динамических событиях Mutagena Помощь студентам 4 09.01.2010 12:54
Система оповещения о новых событиях Amen PHP 13 24.10.2009 16:08