Rectangle View
-
Hallo
ich habe ein Problem. Folgende Code habe ich zur Verfügung//m_menuItemShowPointValues zeigt die X & Y Koordinanten von einem Punkt, wenn man //mit der Maus auf dem Punkt rollt. private void m_menuItemShowPointValues_Click(object sender,System.EventArgs e) { m_menuItemShowPointValues.Checked = !m_menuItemShowPointValues.Checked; if( m_menuItemShowPointValues.Checked == false ) m_ToolTip.Active = true ; } //Berechnen immer den Aktuellen Position bei der Maus Bewegung. private Point m_MousePosition; private void m_PanelDataLines_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { m_MousePosition = new Point( e.X, e.Y); if( m_Cursor_Rect_ON == false) return; //Bei der Bewegung der Maus wird den aktuelen Point-Cursor ständig berechnen m_PCursor_Aktuel = new Point ( e.X , e.Y ) ; m_PanelDataLines.Invalidate() ; Graphics tGraphics = m_PanelDataLines.CreateGraphics(); m_PanelDataLines_Paint( this, new PaintEventArgs( m_PanelDataLines.CreateGraphics(), m_PanelDataLines.ClientRectangle) ); } private void m_PanelDataLines_MouseHover(object sender, System.EventArgs e) { if(m_menuItemShowPointValues.Checked == false) { return; } int tArea = 25; // check if value under mouse double tX_Min = Get_X_Real( m_MousePosition.X - tArea); double tX_Max = Get_X_Real( m_MousePosition.X + tArea); double tY_Min = Get_Y_Real( m_MousePosition.Y + tArea); double tY_Max = Get_Y_Real( m_MousePosition.Y - tArea); //Gehe alle Kurven in die Kurve Liste durch for ( int i = 0 ; i < m_CurveList.Count ; i++ ) { //Betrachte die ite Kurve aus der Kurveliste Curve tCurve = ( Curve ) m_CurveList [ i ] ; //Punkte der jeweilligen Kurve werden im Array tRectF gespeichert for ( int j = 0 ; j < tCurve.X.Length ; j++ ) { if( (double)tCurve.X[j] >= tX_Min && (double)tCurve.X[j] <= tX_Max && (double)tCurve.Y[j] >= tY_Min && (double)tCurve.Y[j] <= tY_Max) { m_ToolTip.SetToolTip( m_PanelDataLines, "(" + ((double)tCurve.X[j]).ToString() + "," + ((double)tCurve.Y[j]).ToString() + ")"); m_ToolTip.Active = true; return; } } } m_ToolTip.Active = false; } }
In tCurve.X[j] & tCurve.Y[j] sind die X & Y Werte gespeichert.
Was ich machen möchte ist beim MouseHover, dass ich die Koordinante X & Y in
einem 4eck sehen kann. Das ganze wird auf dem PanelDataLines gezeichnet.
Das Problem ist folgende, wenn ich mit der Maus auf die Kurve drauf gehe,
dann erscheint das 4eck mit den Werten X & Y,aber nur für 1 Sekunde und
danach verschwinde das ganze. Wenn den Cursor raus vom Panel geht und wieder
drauf, habe genau die gleiche Situation (ich bekomme das 4eck und die X & Y
,aber nur für sehr sehr Kurze Zeit).Besten Dank und schöne Woche an Euch alle.
-
Hab C# tags rein gemacht, damit sich der code lesen lässt