private void pb_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (WithShowString)
            {
                psp = new List <XYPoint>();
                psp.Clear();
                for (int i = 0; i < curves.Count; i++)
                { // malen der Punkte fuer jede Kurve
                    Kurve curve = (Kurve)(curves[i]);
                    if ((curve.getParser() != null) && (!(curve.isDatum)))
                    { // wenn Parser vorhanden, dann Werte bestimmen fuer
                      // eingestellten x_Bereich (umweg ueber weitere Kurve)
                        for (int k = 0; k < curve.getWerte().Count; k++)
                        {
                            psp.Add(curve.getWerte()[k]);
                        }
                    }
                    else
                    {
                        // bei DB - Werten direkt nur die
                        // importierten Daten darstellen
                        psp = curve.getWerte();
                        break;
                    }
                }

                //g.setColor(curve.getKurvenfarbe());
                for (int j = 0; j < psp.Count; j++)
                {     // Punkt bestimmen
                    XYPoint xp = psp[j];
                    if ((Math.Abs(xp.getIx() - e.X) < 3) && (Math.Abs(xp.getIy() - e.Y) < 3))
                    {
                        MouseOverString = xp.getstr();
                        break;
                    }
                    else
                    {
                        MouseOverString = "";
                    }
                }



                if (mmove > 1)
                {
                    mx             = e.X;
                    my             = e.Y;
                    bPaintmousePos = true;
                    mmove          = 0;
                    this.Invalidate();
                }
                else
                {
                    mmove++;
                    bPaintmousePos = false;
                }
            }
        }
        private void pb_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            psp = new List <XYPoint>();
            psp.Clear();
            for (int i = 0; i < curves.Count; i++)
            { // malen der Punkte fuer jede Kurve
                Kurve curve = (Kurve)(curves[i]);
                if ((curve.getParser() != null) && (!(curve.isDatum)))
                { // wenn Parser vorhanden, dann Werte bestimmen fuer
                  // eingestellten x_Bereich (umweg ueber weitere Kurve)
                    for (int k = 0; k < curve.getWerte().Count; k++)
                    {
                        psp.Add(curve.getWerte()[k]);
                    }
                }
                else
                {
                    // bei DB - Werten direkt nur die
                    // importierten Daten darstellen
                    psp = curve.getWerte();
                    break;
                }
            }

            //g.setColor(curve.getKurvenfarbe());
            for (int j = 0; j < psp.Count; j++)
            { // Punkt bestimmen
                XYPoint xp = psp[j];
                if ((Math.Abs(xp.getIx() - e.X) < 4) && (Math.Abs(xp.getIy() - e.Y) < 4))
                {
                    CanGetPoint     = false;
                    MouseDownString = xp.getstr();
                    XPointValue     = xp.getX();
                    YPointValue     = xp.getY();
                    CanGetPoint     = true;
                    break;
                }
                else
                {
                    MouseDownString = "";
                }
            }
        }