如何在c#中设置标签的位置,我想在我的项目中使用一些点来设置位置

时间:2013-05-24 22:10:33

标签: c#

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);

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

2 个答案:

答案 0 :(得分:0)

假设您使用的是标准Windows窗体标签:

label1.Location = p2; // your point

答案 1 :(得分:0)

You should take a look at this document here at MSDN.

特别是你在例子中会注意到的是这一行:

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

这是做五件事:

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

这显然可以让你创建一些有界的位置。显然,如果你已经生成了一个最初会处理它的类来构建它。然后,当您在另一个班级中调用此对象时,您可以positiondocklocationanchor向该表单调用它。

Please bear in mind that this assumes a basic line, but you can make more complex things as found here on the 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对象。这不是你想要的吗?