Как изменить цвет линии при наведении, включая все ближайшие точки другой линии - PullRequest
0 голосов
/ 05 ноября 2018

Я просто хочу спросить, как динамически изменить цвет линии наведения и ближайших точек линии.

private void Solid_Green_MouseMove_NotDown(object sender, MouseEventArgs e)
    {
        Pen red = new Pen(Color.Red, 1);
        red.DashPattern = new float[] { 5.0F, 5.0F, 5.0F, 5.0F };
        Pen Red = new Pen(Color.Red, 1);
        Graphics g = this.CreateGraphics();
        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
        Point hit_point;
        int segment_number;
        if (MouseIsOverEndpoint(e.Location, out segment_number, out hit_point))
        {
            g.DrawLine(Red, Pt1[segment_number], Pt2[segment_number]);
        }
        else if (MouseIsOverSegment(e.Location, out segment_number))
        {

            g.DrawLine(Red, Pt1[segment_number], Pt2[segment_number]);
            int other_side;
            int other_other_side;
            int other_other_other_side;
            int other_other_other_other_side;
            if (MouseIsOverSegment(Pt1[segment_number], out other_side) || MouseIsOverSegment(Pt2[segment_number], out other_side))
            {
                g.DrawLine(Red, Pt1[other_side], Pt2[other_side]);
                if (MouseIsOverSegment(Pt1[other_side], out other_other_side) || MouseIsOverSegment(Pt2[other_side], out other_other_side))
                {
                    g.DrawLine(Red, Pt1[other_other_side], Pt2[other_other_side]);
                    if (MouseIsOverSegment(Pt1[other_other_side], out other_other_other_side))
                    {
                        g.DrawLine(Red, Pt1[other_other_other_side], Pt2[other_other_other_side]);
                        if (MouseIsOverSegment(Pt1[other_other_other_side], out other_other_other_other_side))
                        {
                            g.DrawLine(Red, Pt1[other_other_other_other_side], Pt2[other_other_other_other_side]);
                        }
                    }
                }
            }

        }}

Вот мой код. Я хочу улучшить его, как минимизировать использование условия if else и стать динамическим.

...