-4
Graphics gr;
gr = CreateGraphics();

Pen p = new Pen(System.Drawing.Color.FromArgb(r.Next(255), r.Next(255), r.Next(255)), 1.1f);
Point p1 = new Point(array1[currentadd], dx);

Point p2 = new Point(array1[currentadd], dx = dx + 7);
gr.DrawLine(p, p1, p2);

现在我画了一条线,我想写下线连接它们的点的信息......所以我想设置标签位置来写点位置......但是如何?

4

1 回答 1

0

您应该在 MSDN 上查看此文档。

特别是您会在示例中注意到这一行:

formGraphics.DrawLine(myPen, 0, 0, 200, 200);

这是在做五件不同的事情:

  • 首先它会调用我们的Drawing Object.
  • 第二个和第三个是我们的绘图点。
  • 第四和第五是浮动位置。

这显然允许您创建一些有界的位置。显然,如果您已经生成了一个类,该类将在最初构建它时进行处理。然后,当您在另一个类中调用此对象时,您可以position, dock, location, 并anchor以您调用它的那个形式。

请记住,这假定了一条基本线路,但您可以制作更复杂的东西,如 MSDN 上的此处所示。

潜在问题:

如果您直接在表单上使用示例中的方法,请记住 this 将绑定到所 this 代表的对象的当前范围。一个例子,如果这个代码在一个按钮上:

Pen myPen = Pen(Color.Red);
Graphics formGraphics = this.CreateGraphics();
formGraphics.DrawLine(myPen, 0, 100, 200, 200);

在这种情况下,它将根据按钮对象的位置绑定点。

希望这有助于为您指明正确的方向。

更新:

根据您的问题,听起来您试图将线放在标准标签的上方或下方。这可以很简单地完成,例如:

// Define Label
Label i = new Label();

// Create our Line.
Pen iPen = Pen(Color.Red);
Graphics iGraphics = i.CreateGraphics();
iGraphics.DrawLine(iPen, 0, 250, 0, 0);

// Dock to Bottom of Form
i.Dock = DockStyle.Bottom;

然后,如果您在任何时候使用按钮更改位置,或者在循环中修改文本,您的行将保持绑定到您的label对象。这不是你想要的吗?

于 2013-05-24T22:22:17.897 回答