Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > WPF, UWP, WinRT, XAML
Регистрация

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

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

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

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

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

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

icq: 512-765
skype: alexp.frl
По умолчанию

Руками на мышке и клавиатуре например.
Alex11223 на форуме   Ответить с цитированием
Старый 22.04.2016, 15:25   #5
DennerV
Пользователь
 
Регистрация: 14.05.2009
Сообщений: 44
Репутация: 10
По умолчанию

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

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

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

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

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

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

icq: 446843180
skype: phoenix_proger
По умолчанию

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

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

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

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


17:13.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru