0

假设我有两个带有可变文本的标签。标签 1 位于屏幕中央。我可以将标签 2 放在标签 1 的右侧:

label1.Location = (WIDTH / 2, Height / 2)
label2.Location = new Point(label1.Right, label1.Top);

表单输出:

 _______________ 
|               |
|      100 200  |
|_______________|

现在我想做同样的事情,但将标签 2 放在标签 1 的左侧。我该怎么做?

表单输出:

 _______________ 
|               |  
|  200 100      |
|_______________|
4

2 回答 2

1

如果label2尺寸已经正确,您可以从左侧减去其宽度label1

label2.Location = new Point(label1.Left - label2.Width, label1.Top)

图表:

  -----(label1.Left - label2.Width)
  |
  | -----label1.Left
 _|___|_________
| vv |  
| +---+---+ <--------label1.Top
| |200|100| |
| +---+---+ |  
| '---' |
|___|__________|
    |
    -----label2.Width
于 2013-10-23T15:04:11.413 回答
0

从第一个标签的左点开始定位第二个标签并减去要放置的标签的宽度

label2.Location = new Point(label1.Left - label2.Width, label1.Top);

顺便说一句,用于第一个标签的值应该考虑标签的宽度和高度实际上位于标签容器的中心。因此,假设您希望第一个标签位于其包含表单的中心,您应该使用这样的公式

int leftPos = (this.Width / 2) - (label1.Width / 2);
int topPos = (this.Height / 2) - (label1.height / 2);
label1.Location = new Point(leftPos, topPos)
于 2013-10-23T15:04:21.927 回答