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 😉


Log in to reply