С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Windows Phone
Войти
Регистрация
Восстановить пароль
 
DMF
6 / 6 / 2
Регистрация: 16.04.2015
Сообщений: 115
1

Навигация в меню (ContextMenu) клавишами устройства (C#, WinCE5.0, .NET3.5)

07.08.2015, 16:01. Просмотров 391. Ответов 12
Метки нет (Все метки)

Доброго времени суток!
Есть меню ContextMenu, есть хардверные клавиши - стреки и Enter.
Проблема в следующем:
По нажатии клавиши появляется меню, по нему можно перемещаться вверх-вниз - пункты меню подсвечиваются, но...
Ничего более не работает. Надо что бы по нажатию стрелки вправо происходил выбор выделенного пункта меню, как будто мы на него нажали. в крайнем случае, можно осуществлять выбор клавишей Enter, т.к. меню является модальным и не закрывается по нажатии стрелки вправо.
Как это решить или хотя бы в какую сторону копать? Неделю с этим разобраться не могу...
Заранее благодарю за адекватные ответы.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2015, 16:01
Ответы с готовыми решениями:

ContextMenu вложенные элементы меню.
Помогите сделать вложенные элемементы меню в пункт "Просмотр", чтобы они...

ContextMenu - два элемента на одной строчке в меню
Всем добрый день. Подскажите, как можно в XAML реализовать на одном из...

Навигация меню
Перенес окно поиска под шапку, но столкнулся с проблемой, что разделы в таком...

AutoCWM навигация в меню
Установил autoCWM 5.5.0.4 Телефон Lenovo A316i Перезапускаю телефон,захожу в...

Выпадающее меню - навигация
Здравствуйте! Я создаю html сайт и заказчик попросил сделать выпадающее меню...

12
krupa
106 / 106 / 35
Регистрация: 13.12.2010
Сообщений: 407
07.08.2015, 16:14 2
вопрос скорее не по теме:

а я так понимаю, что сейчас старьё дикое.
можете мне сказать, где это используется?
0
DMF
6 / 6 / 2
Регистрация: 16.04.2015
Сообщений: 115
10.08.2015, 08:05  [ТС] 3
Терминалы сбора данных.
А по теме можете чем помочь? Старьё, ведь, многим известно быть должно...
0
xinvestoriginal
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 90
10.08.2015, 22:28 4
попробуйте посмотреть список событий ContextMenu.Events, не знаю насколько совместимо с мобильным фреймворком, если свойство есть, попробуйте добавить обработчик нужной клавиши.
0
DMF
6 / 6 / 2
Регистрация: 16.04.2015
Сообщений: 115
11.08.2015, 08:48  [ТС] 5
xinvestoriginal, в том-то и беда, у ContextMenu только событие Popup, а у MenuItem - Popup и Click. Свойства Event нет ни у одного...
Может есть возможность как-то копировать элемент и привязать событие (подцепиться) к внутреннему событию? Всё-равно ведь, выделение (подсветка) пункта меню происходит по внутреннему событию элемента (стартует его прорисовка).

Добавлено через 4 минуты
Может наследованием? Только не хочет ContextMenu наследоваться...

Добавлено через 1 минуту
Вообще, при наследовании можно переписывать внутренние методы и/или делать их внешними?
0
xinvestoriginal
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 90
11.08.2015, 08:50 6
возможно проще создать собственное окно, с итемсами и уже в нём делать навигацию как удобно.
0
DMF
6 / 6 / 2
Регистрация: 16.04.2015
Сообщений: 115
11.08.2015, 08:57  [ТС] 7
Цитата Сообщение от xinvestoriginal Посмотреть сообщение
создать собственное окно
Как?
Цитата Сообщение от xinvestoriginal Посмотреть сообщение
посмотреть список событий ContextMenu.Events
На строку
C#
1
string strE = cMenu.contextMenu1.Events.ToString();
студия ответила:
Доступ к защищенному члену "System.ComponentModel.Component.Events" через квалификатор типа "System.Windows.Forms.ContextMenu" невозможен; квалификатор должен иметь тип "TSD.Form1" (или производный от него тип)
0
xinvestoriginal
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 90
11.08.2015, 09:05 8
Цитата Сообщение от DMF Посмотреть сообщение
Сообщение от xinvestoriginal
создать собственное окно
Как?
неужели гугл и мсдн заблокировали? ну вот, за вас нашёл:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public void CreateMyForm()
{
   // Create a new instance of the form.
   Form form1 = new Form();
   // Create two buttons to use as the accept and cancel buttons.
   Button button1 = new Button ();
   Button button2 = new Button ();
 
   // Set the text of button1 to "OK".
   button1.Text = "OK";
   // Set the position of the button on the form.
   button1.Location = new Point (10, 10);
   // Set the text of button2 to "Cancel".
   button2.Text = "Cancel";
   // Set the position of the button based on the location of button1.
   button2.Location
      = new Point (button1.Left, button1.Height + button1.Top + 10);
   // Set the caption bar text of the form.   
   form1.Text = "My Dialog Box";
   // Display a help button on the form.
   form1.HelpButton = true;
 
   // Define the border style of the form to a dialog box.
   form1.FormBorderStyle = FormBorderStyle.FixedDialog;
   // Set the MaximizeBox to false to remove the maximize box.
   form1.MaximizeBox = false;
   // Set the MinimizeBox to false to remove the minimize box.
   form1.MinimizeBox = false;
   // Set the accept button of the form to button1.
   form1.AcceptButton = button1;
   // Set the cancel button of the form to button2.
   form1.CancelButton = button2;
   // Set the start position of the form to the center of the screen.
   form1.StartPosition = FormStartPosition.CenterScreen;
 
   // Add button1 to the form.
   form1.Controls.Add(button1);
   // Add button2 to the form.
   form1.Controls.Add(button2);
 
   // Display the form as a modal dialog box.
   form1.ShowDialog();
}
0
DMF
6 / 6 / 2
Регистрация: 16.04.2015
Сообщений: 115
11.08.2015, 09:16  [ТС] 9
xinvestoriginal, простите, но это никак не похоже на меню, да и нет в Compact Framework'е таких элементов, как диалоги и кнопки помощи, например.
Да и задача - навигация по MainMenu. Т.к. к MainMenu нельзя привязать нажатие клавиши (я не нашёл способа) я клавишей открываю ContextMenu, т.к. визуально они идентичны. Вопрос, как программе понять какой пункт в нём выбран (подсвечен).
0
xinvestoriginal
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 90
11.08.2015, 09:42 10
Цитата Сообщение от DMF Посмотреть сообщение
Т.к. к MainMenu нельзя привязать нажатие клавиши
т.е. изначальная задача- навигация по MainMenu кнопками?
0
DMF
6 / 6 / 2
Регистрация: 16.04.2015
Сообщений: 115
11.08.2015, 09:51  [ТС] 11
Да, клавишами устройства. Но там разницы практически нет. ContextMenu как бы эмулиирует первый пункт MainMenu.
0
xinvestoriginal
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 90
11.08.2015, 09:59 12
Цитата Сообщение от DMF Посмотреть сообщение
Да, клавишами устройства.
априори это должно работать по умолчанию.
0
DMF
6 / 6 / 2
Регистрация: 16.04.2015
Сообщений: 115
11.08.2015, 10:23  [ТС] 13
Цитата Сообщение от xinvestoriginal Посмотреть сообщение
априори это должно работать по умолчанию.
Должно...
0
11.08.2015, 10:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2015, 10:23

Навигация по меню с помощью клавиш
Появился вопрос,как сделать в си чтобы в консольном окне( В черненьком)) ) по...

постраничная навигация неправильно выводит меню
Доброго времени суток. У меня есть код постраничной навигации// Устанавливаем...

Навигация переход на предыдущую и следующую страницу в выпадающем меню
Проблема такая: есть выпадающий список <SELECT NAME="navSelect" ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru