繁体   English   中英

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

[英]C# How do I draw a line between two objects on a windows form?

很长时间以来,我一直在试图在两个对象之间画一条线,但是它仍然行不通。

我的程序应该制作两个图片框(已经制作好,称为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. 不要(永远不要读CreateGraphics()显式调用CreateGraphics() 除极少数情况外,这是危害人类罪。
  2. 处理Form Paint事件(或重写OnPaint() )。 在其中编写线条画代码。

像这样:

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);
}
  1. 每当您需要手动刷新屏幕时,请调用this.Invalidate()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM