Используя ответ на запрос текущего положения курсора мыши в случае открытия в ContextMenuStrip может поставить неправильный положение при открытии полосы немного задерживается.
Если вам действительно нужна позиция, удалите ContextMenuStrip из свойства элемента управления и вручную откройте контекстное меню в событии MouseDown элемента управления. Там у вас есть доступ к фактической позиции щелчка.
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
if(e.Button == MouseButtons.Right)
{
var relativeClickedPosition = e.Location;
var screenClickedPosition = (sender as Control).PointToScreen(relativeClickedPosition);
contextMenuStrip1.Show(screenClickedPosition);
}
}
relativeClickedPosition
является позиция курсора по отношению к контролю.
Довольно неясно, что вы имеете в виду или почему это имеет значение. Используйте метод PointToClient() элемента управления для сопоставления координат координаты диаграммы. Или, возможно, Axis.PixelPositionToValue() для отображения на ось диаграммы. Не заставляй нас гадать. –
Я хочу, чтобы вставить маркер в том месте, где я нажал. –
PointToClient решил :-) Я подумал :-( –