Anchor
属性:checkBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
这意味着控件的右侧边框应始终与包含控件(即您的表单)的右侧边框保持相同的距离。
您也可以在设计器窗口中设置此属性。
在您的澄清之后更新:
这是一个复杂的情况。我找到的一个解决方案(虽然我不确定它是否最好),是使用Panel
来包含CheckBox
。
Panel
放置在CheckBox
可能位于的最左边位置Panel
的大小,以使其右边缘位于CheckBox
应该有的右边缘(加上几个像素)的最右边缘Panel
的MaximumSize
设置为这个确切的大小Panel
的Anchor
属性设置为Top | Left | Right
Panel
内部的右侧放置CheckBox
CheckBox
的Anchor
属性设置为Top | Right
现在,如果您扩大Form
,Panel
会保持其大小,因为有了MaximumSize
值。
如果您缩小Form
,Panel
也会收缩,因为它的AnchorStyle.Right
。由于自己的AnchorStyle.Right
,CheckBox
向左移动。
当您再次扩大Form
时,Panel
也会增长,但仅当它再次达到其MaximumSize
时。为跟上不断增长的Panel
,CheckBox
会向右移动。
希望这样做可以满足您的要求。如有必要,我以后可以添加屏幕截图。
SizeChanged
事件。 - René Vogt所以我尝试为此寻找一个简洁的代码解决方案,希望这对每个人都有效:
private void CtrlSequence_SizeChanged(object sender, EventArgs e) // Form got reduced / enlarged
{
checkBox.Location = new Point(Math.Min(Width - checkBox.Width, 345), checkBox.Location.Y); // Width = Forms Width
}
重要!这只是用于水平移动。垂直方向是固定的。