При нажатии клавиши меню ContextMenuStrip не появляется в позиции курсора мыши.

В приложении Windows Forms, .NET 2.0 я использую элемент управления ContextMenuStrip, прикрепленный к свойству формы ContextMenuStrip. Когда я щелкаю форму правой кнопкой мыши, в позиции курсора мыши открывается ContextMenuStrip.

Однако, когда я нажимаю «клавишу меню» на клавиатуре, ContextMenuStrip не открывается в позиции курсора мыши, он открывается в том же месте где-то в правом нижнем углу формы. Это стандартное поведение и почему?

Как я могу написать код, чтобы изменить это поведение и сделать всплывающее окно ContextMenuStrip в позиции курсора мыши, когда я нажимаю «клавишу меню»?


person Memento    schedule 03.12.2009    source источник


Ответы (2)


Это стандартное поведение. Попробуйте использовать ключ в любом другом приложении. Он полностью игнорирует расположение мыши.

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

person tster    schedule 03.12.2009
comment
Не обязательно. В Visual Studio, например, если что-то выделено в дереве или текстовом редакторе, клавиша контекстного меню вызывает контекстное меню в этом месте ... - person jreichert; 16.03.2015
comment
Да, он появляется в выбранном элементе, который все еще не является местом расположения мыши. - person tster; 17.03.2015
comment
На мой взгляд, это правильно. Если вы используете клавиатуру, вы получаете контекстное меню на элементе управления, ориентированном на клавиатуру. - person jreichert; 17.03.2015
comment
@jreichert, был задан вопрос об открытии контекстного меню в месте нахождения курсора мыши. Это не имеет ничего общего с целенаправленным контролем. - person tster; 17.03.2015

Я считаю это нормальным поведением. Попробуйте в этом окне нажать клавишу Меню ;-)

person Shoban    schedule 03.12.2009