C#线条绘画问题

时间:2014-07-23 20:10:01

标签: c# .net graphics line pen

我需要帮助在WinForm上画一条线。

我目前拥有的代码主要是从MSDN中删除的:

using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

    private void Form1_Load(object sender, EventArgs e)
    {
        this.Invalidate();
    }
    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {

        // Insert code to paint the form here.
        Pen pen = new Pen(Color.FromArgb(255, 0, 0, 0));
        e.Graphics.DrawLine(pen, 10, 10, 300, 200);
    }
}

}

目前,此代码根本没有绘制任何内容。

2 个答案:

答案 0 :(得分:1)

您发布的代码很好。它在表单中间呈现一条黑线:

enter image description here

我怀疑您的问题是您没有订阅Paint方法的表单Form1_Paint事件。你不能只把这个方法放在那里,并期望它被神奇地调用。

您可以通过将其添加到Form的构造函数来解决此问题:

public Form1()
{
    InitializeComponent();
    this.Paint += Form1_Paint;
}

或者,您可以在设计器中执行此操作,该设计器执行相同的事件订阅,它只是将其隐藏在InitializeComponent()内。

答案 1 :(得分:0)

根据MSDN:

using System.Drawing;

Pen myPen;
myPen = new Pen(System.Drawing.Color.Red);
Graphics formGraphics = this.CreateGraphics();
formGraphics.DrawLine(myPen, 0, 0, 200, 200);
myPen.Dispose();
formGraphics.Dispose();

您的代码实际上看起来很好,您确定该方法正在解雇吗?