Ich habe ein Diagramm (myChart) und mehr ChartArea in MyArea, die die ChartAreasCollection ist. Ich muss bestimmen, ob in einem bestimmten ChartArea der Sammlung ein Doppelklick gemacht wird, um sie auszuwählen. Mit dem unten beschriebenen Code hat jeder ChartArea die gleichen Werte für die Grenzen (x, y), so dass die if-Bedingung immer wahr ist, auch wenn der Klick auf den ersten Bereich erfolgte.Ermitteln, welche ChartArea doppelt geklickt wird
Jeder Chartbereich kann sichtbar sein oder nicht. Um diese Funktion nutzen zu können, muss ich mit dem Counter ActiveAreas überprüfen, ob mehr als einer sichtbar ist.
private void chartInForm_DoubleClick(object sender, EventArgs e)
{
if (ActiveAreas > 1)
{
Point mouse = ((MouseEventArgs)e).Location;
foreach (ChartArea ca in MyArea)
{
if (mouse.X > ca.Position.X &&
mouse.X < ca.Position.X + ca.Position.Width * myChart.Width/100 &&
mouse.Y > ca.Position.Y &&
mouse.Y < ca.Position.Y + ca.Position.Height * myChart.Height/100)
MessageBox.Show(ca.Name);
}
}
}
Ich nehme an, dass Sie das Klickereignis für alle Diagramme in der gleichen Methode fangen, ist das korrekt? – Zalomon