die Antwort Mit der aktuellen Position des Mauszeigers in der Eröffnungsveranstaltung des Context abfragen kann die falsche liefern Position beim Öffnen des Streifens ist ein bisschen verzögert.
Wenn Sie die wirklich angeklickte Position benötigen, entfernen Sie den ContextMenuStrip aus der Eigenschaft des Steuerelements, und öffnen Sie das Kontextmenü im MouseDown-Ereignis des Steuerelements manuell. Dort haben Sie Zugriff auf die tatsächliche Klickposition.
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
ist die Cursorposition relativ zu der Kontrolle.
Ziemlich unklar, was du meinst oder warum es wichtig ist. Verwenden Sie die PointToClient() -Methode des Steuerelements, um den Koordinaten des Diagrammsteuerelements zuzuordnen. Oder vielleicht Axis.PixelPositionToValue(), um einer Diagrammachse zuzuordnen. Lass uns nicht raten. –
Ich möchte an der Stelle, an der ich geklickt habe, eine Markierung einfügen können. –
PointToClient hat es gelöst :-) Ich dachte :-( –