假设我有两个带有可变文本的标签。标签1位于屏幕的中心。我可以将标签2放在标签1的右侧:
label1.Location = (WIDTH / 2, Height / 2)
label2.Location = new Point(label1.Right, label1.Top);
表单输出:
_______________
| |
| 100 200 |
|_______________|
现在我想做同样的事情,但将标签2放在标签1的左侧。我该怎么做?
表单输出:
_______________
| |
| 200 100 |
|_______________|
答案 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)