|
Master of Orion
|
|
Запрет фокусировки на кнопке для корректной работы KeyDown29.08.2012, 22:27. Показов 5457. Ответов 20
Метки нет (Все метки)
Здравствуйте! Возник вопрос: у меня игрушка, реагирует на нажатие стрелок, решил добавить кнопку "выход", проблема в том, что теперь мышь фокусируется на кнопке и не реагирует на стрелки. Решил имитировать WPF routed events, и вызывать на button.KeyDown событие Form.KeyDown, но почему-то при нажатии кнопок управление к button.KeyDown не возвращается. Почему так я не знаю. Как это можно сделать, скажите, пожалуйста? А то мне кажется, что на wpf у меня не получится сделать, сложновато там имо.
0
|
|
| 29.08.2012, 22:27 | |
|
Ответы с готовыми решениями:
20
Настройка и запуск VirtualBox для корректной работы ? Как переделать функцию для корректной работы? Есть ли какие то обновления для Windows 7 x86 для корректной работы Free Pascal |
|
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
|
|
| 29.08.2012, 22:37 | |
|
А если в обработчике события получения фокуса что-то намудрить?
0
|
|
|
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
|
|
| 29.08.2012, 22:43 | |
|
А что при трасировке происходит?
Смотри,в WPF есть 2 способа обращения к компоненту.Из контейнера к компоненту и из компонента к контейнеру(туннелинг или пулинг называется,уже не помню).Попробуй корректно разобраться кто из этих 2-их должен реагировать,а кто реагирует на самом деле.
0
|
|
|
Master of Orion
|
|
| 29.08.2012, 22:43 [ТС] | |
|
DimanRu, в любом случае, нужно что-то делать со свойством Focus или CanFocus, а они не имеют сеттера. Пробовал делать кнопку Enabled = false, и попробовать её активировать при наведении мыши, но в выключенном состоянии она не реагирует на события. В общем, не знаю не знаю...
Noob.net, я говорю, я попытался эту концепцию реализовать на WF, на WPF все прекрасно бы работало, я и так знаю. Только у меня там рисовать пока плохо получается
0
|
|
|
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
|
|
| 29.08.2012, 22:55 | |
|
А вы не при наведении мыши, а при перемещении мыши, с условием что координаты курсора совпадают с областью, занимаемой кнопкой. Сейчас попробую накидать код.
0
|
|
|
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
|
|
| 29.08.2012, 23:02 | |
|
Для игра пожалуй, да, не рациональное.
0
|
|
|
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
|
|||
| 29.08.2012, 23:30 | |||
|
Есть событие OnFocus
на WF все должно работать строго и прекрасно. А зачем мышку таскать при нажатии клавиш?//если такое имеет место События вызывай а мышка пусть тусуется. Или проблемы при исп.клавиш? Добавлено через 1 минуту
0
|
|||
|
Master of Orion
|
|
| 30.08.2012, 00:12 [ТС] | |
|
Noob.net, при запуске приложения фокус автоматически смещается на кнопку (т.к. у меня на форме больше вообще нету никаких компонент, которые можно мышкой активировать, не считая меню). И он его автоматически фокусирует
0
|
|
|
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
|
|
| 30.08.2012, 00:18 | |
|
Так контролируй фокус.
Или при запуске наблюдается непослушание мыши? Тогда вы что-то начудили в коде.
0
|
|
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
||||||
| 30.08.2012, 00:19 | ||||||
0
|
||||||
|
Master of Orion
|
|
| 30.08.2012, 00:39 [ТС] | |
|
Blood-Angel, не помогает
Noob.net, в InitializeComponent(); происходит смещение фокуса, а потом я уже ничего с ним сделать не могу novi4ok, у меня такого класса нет ... Нашел в System.Windows.Input (хотя это неймспейс WPF, если я не ошибаюсь). Соответственно: работать не хочет...
0
|
|
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
||||||
| 30.08.2012, 00:59 | ||||||
|
Psilon, что? Волшебная студия, которая компилирует код как не у меня? Или ты пытаешься перехватить кнопки управлением фокуса? Ну-ну, успехов.
Добавлено через 12 минут На тебе грязный хак:
0
|
||||||
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
|||||||||||
| 30.08.2012, 11:35 | |||||||||||
|
Забавная архитектура. А сколько дыр. Чего только стоит нажать неправильную кнопку на клавиатуре. (:
(Не знаю, правда, почему в форме "Рекорды" нет кнопки закрыть и почему при масштабировании вида игра начинается сначала) Добавляем кнопку на форму и изменяем таким образом код:
Или определить в нужном виде: Resharper - Options - Code Editing - C# - C# Naming Style P.S. Сильная привязка статического(?) класса Game к WinForms.
0
|
|||||||||||
|
Master of Orion
|
|||||||||
| 30.08.2012, 12:03 [ТС] | |||||||||
|
Blood-Angel, сильная, и так знаю, подключение WF неймспейса заранее обрекает этот класс на использование в каком-нибудь WPF, это да, но знал бы, как сделать иначе, сделал бы. Я старался максимально развязать код (насколько мне мои знания позволяют), но получилось, видимо, не очень.
Начинается сначала - потому что при масштабировании меняется размер карты (визуально размер тот же, но количество "клеток" становится меньше, так, чтобы сама карта осталась прежнего размера (в пикселях).
Добавлено через 12 минут Хотя если у вас есть время на более детальный просмотр проекта, я бы выслушал конструктивную критику (я же не продавать собираюсь, а учусь и, соответственно, оставляю за собой право на ошибку, которую неплохо бы исправить). Добавлено через 2 минуты
0
|
|||||||||
|
Злой няш
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
|
||||||
| 30.08.2012, 12:32 | ||||||
|
Должна быть кнопка Advanced Settings, с помощью которой можно добавлять свои правила. Но это не интересно. Если глянуть в средину окна, то можно увидеть надписи типа:
WF - это Windows Workflow Foundation и не что другое. Меня малость вгоняет в ступор такая запись. Бывает правда случаи, когда невозможно вынести общую логику. Если интересно, то есть цикл уроков, где демонстрируется магия (на английском хотя): Смотреть видео
1
|
||||||
| 30.08.2012, 14:42 | |
|
0
|
|
| 30.08.2012, 14:42 | |
|
Помогаю со студенческими работами здесь
20
Где нужно всунуть Критическую секцию для корректной работы Определить, какое количество видеопамяти необходимо для корректной работы сотового телефона Ищу драйвера под видеокарту Intel HD Graphics для корректной работы OpenGL Как запускать программу так, чтобы ей были доступны необходимые для её корректной работы каталоги с файлами?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|