基于相邻标签 C# 的标签位置

本文关键字:标签 位置 于相邻 | 更新日期: 2023-09-27 18:36:30

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

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

表单输出:

 _______________ 
|               |
|      100 200  |
|_______________|

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

表单输出:

 _______________ 
|               |  
|  200 100      |
|_______________|

基于相邻标签 C# 的标签位置

如果label2的大小已经正确,你可以从label1的左侧减去它的宽度:

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

图:

  -----(标签1.左 - 标签 2。宽度)  |  |  -----标签1.左 _|___|_________|V V | |+---+---+ <--------标签1.返回页首| |200|100|   ||+---+---+    | |'---'        ||___|__________|    |    -----标签2.宽度

从第一个标签的左点开始定位第二个标签,减去要放置的标签的 witdh

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)