在c#中画线

Joh*_*hnB 12 c# graphics drawing winforms

我是c#的新手,我正在努力在一个表格中划一条线.这是我到目前为止的代码.

Graphics g;

g = this.CreateGraphics();

Pen myPen = new Pen(Color.Red);
myPen.Width = 30;
g.DrawLine(myPen, 30, 30, 45, 65);

g.DrawLine(myPen, 1, 1, 45, 65);
Run Code Online (Sandbox Code Playgroud)

Bal*_*a R 21

尝试一下 OnPaint

protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            Graphics g;

            g = e.Graphics;

            Pen myPen = new Pen(Color.Red);
            myPen.Width = 30;
            g.DrawLine(myPen, 30, 30, 45, 65);

            g.DrawLine(myPen, 1, 1, 45, 65);
        }
Run Code Online (Sandbox Code Playgroud)

  • @JohnB:你的代码*会画出一些东西.但是,如果将它放在构造函数中,它将在首次创建表单时绘制线条,但*在显示表单之前*.当显示表单时,它会再次重绘,并且由于您的代码不会被执行以绘制线条,因此它们不会出现.每次重新绘制表单时都需要绘制线条(它们不会被"记住"),而正确的位置是在OnPaint()中. (11认同)

Jon*_*ood 5

这不是一个真正的问题,因为你没有说出你所看到的.

执行此操作的正确方法是在表单的Paint事件处理程序中.从e参数中获取图形对象.试试看,让我们知道你看到了什么.