C # и расположение на формах - PullRequest
0 голосов
/ 04 февраля 2010

Я пытаюсь, чтобы объект contextmenustrip показывался по координатам, когда щелчок правой кнопкой мыши происходит на конкретном объекте формы. Я подключился к событию CellMouseClick форм, и я могу получить значения X, Y для этого события, но, похоже, они относятся к этому конкретному элементу управления. Например, если я использую contextmenu.Show (e.X, e.Y), он будет отображаться в верхнем углу экрана, а не там, где указатель мыши находится в этой форме.

Как мне достичь того, что я хочу сделать? Если это помогает, элемент управления формой, к которому я подключаюсь, является DataGridView.

Ответы [ 4 ]

2 голосов
/ 04 февраля 2010

Я бы просто установил ContextMenuStrip свойство DataGridView для вашего ContextMenuStrip, тогда оно всегда будет появляться там, где вы щелкаете правой кнопкой мыши по сетке.

Вы можете установить это в коде, а также в окне свойств дизайнера.

2 голосов
/ 04 февраля 2010

DataGridView имеет свойство ContextMenu , которое вы можете использовать для этого.

1 голос
/ 04 февраля 2010

Попробуйте следующий код:

ContextMenuStrip myMenuStrip = new ContextMenuStrip();
myMenuStrip.Show(myDataGrid , new Point(0 , 0));

и для ContextMenu:

ContextMenu myMenu = new ContextMenu();
myMenu.Show(myDataGrid , new Point(e.X , e.Y));
0 голосов
/ 04 февраля 2010

вам нужно проверить левый и верхний свойства

x + control.left
y + control.top
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...