基于邻居标签c#的标签位置

时间:2013-10-23 15:02:04

标签: c# position label

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

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

表单输出:

 _______________ 
|               |
|      100 200  |
|_______________|

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

表单输出:

 _______________ 
|               |  
|  200 100      |
|_______________|

2 个答案:

答案 0 :(得分:1)

如果label2的尺寸已经正确,您只需从label1的左侧减去其宽度:

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

图:


  -----(label1.Left - label2.Width)
  |
  |   -----label1.Left
 _|___|_________ 
| v   v        |  
| +---+---+ <--------label1.Top
| |200|100|    |
| +---+---+    |  
| '---'        |
|___|__________|
    |
    -----label2.Width

答案 1 :(得分: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)