C#如何在Windows窗体上的两个对象之间绘制一条线?

时间:2017-11-11 15:29:27

标签: c# winforms draw

我一直试图在两个物体之间画一条线很长一段时间,但它仍然无法工作。

我的程序应该制作两个图片框(已经制作,称为PB1和PB2)并将它们与表格上的一行连接。

我有这个:

public void DrawStuff(object sender, PaintEventArgs e)
    {
        Pen blackPen = new Pen(Color.Black, 3);
        Point point1 = new Point(PB[0].Location.X, PB[0].Location.Y);
        Point point2 = new Point(PB[1].Location.X, PB[1].Location.Y);

        e.Graphics.DrawLine(blackPen, point1, point2);
        CreateGraphics();
    }

但是我无法调用该函数!另外,盒子是用按钮创建的,所以它不能从头开始绘制,按下按钮后就必须这样做。如果有人有工作代码,请告诉我,我即将崩溃。

1 个答案:

答案 0 :(得分:1)

  1. 不要(永远不要读)明确地拨打CreateGraphics()。除极少数情况外,这是危害人类罪。
  2. 处理Paint的{​​{1}}事件(或覆盖OnPaint())。在那里写下你的线条图代码。
  3. 这样的事情:

    Form
    1. 每当您需要手动刷新屏幕时,请致电protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); using(var blackPen = new Pen(Color.Black, 3)) e.Graphics.DrawLine(blackPen, PB[0].Location, PB[1].Location); }