Как сделать так, чтобы точки появлялись в приложении Windows Form? - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь создать базовое приложение winforms, которое рисует треугольник из точек, которые я указал, я не могу заставить программу отображать линии в форме, когда нажата кнопка.Я не очень уверен, какой код положить в кнопку.Я очень новичок в C # и имею некоторые основы, но мне нужна дополнительная помощь.Спасибо.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public void DrawPolygonPontF(PaintEventArgs e)
    {
        // Create pen.
        Pen blackPen = new Pen(Color.Black, 3);

        // Create points.
        PointF point1 = new PointF(50.0F, 50.0F);
        PointF point2 = new PointF(100.0F, 25.0F);
        PointF point3 = new PointF(200.0F, 5.0F);

        PointF[] curvePoints =
        {
             point1,
             point2,
             point3,
        };

        // Draw.
        e.Graphics.DrawPolygon(blackPen, curvePoints);
    }

    private void button1_Click(object sender, EventArgs e)
    {
    }
}

1 Ответ

0 голосов
/ 19 февраля 2019

Вы можете реализовать событие Paint (нажмите Paint событие в свойствах Form1 и поместите DrawPolygonPontF(e);)

public partial class Form1 : Form 
{
    ...
    private bool m_ShowTriangle = false;

    // private: drawing triangle is an implementation detail; let's not expose it
    private void DrawPolygonPontF(PaintEventArgs e)
    {
        // Create pen. (do not forget to release it - "using")
        using (Pen blackPen = new Pen(Color.Black, 3)) 
        {
            // Create points.
            PointF point1 = new PointF(50.0F, 50.0F);
            PointF point2 = new PointF(100.0F, 25.0F);
            PointF point3 = new PointF(200.0F, 5.0F);

            PointF[] curvePoints =
            {
                 point1,
                 point2,
                 point3,
            };

            // Draw.
            e.Graphics.DrawPolygon(blackPen, curvePoints);
        }
    }

    // Whenever system wants to paint the form...
    private void Form1_Paint(object sender, PaintEventArgs e) 
    {
        // ...draw the triangle (if we want it)
        if (m_ShowTriangle)
            DrawPolygonPontF(e);
    } 

    private void button1_Click(object sender, EventArgs e)
    {
        m_ShowTriangle = true;
        // All the area of the window is invalid (i.e. wants repainting)
        Invalidate();
        // And the area should be re-painted at once 
        Update();  
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...