我需要一些有关 WinForms 响应式表单的帮助。我在位置 xy 有一个复选框。当我将表单调整为较小尺寸时,此复选框应移至左侧,更靠近其他元素。
你可以在我制作的图片上看到它。我不知道,我必须在那里更改哪个属性才能实现这一点。要移动的复选框用红色框标记。
当我放大表单时,这个元素必须停留在它的默认位置。当我减少它时,复选框必须向左移动。当我再次放大它时,复选框必须移回其默认位置。
最佳答案
您需要设置 Anchor
属性:
checkBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
这表明控件的右边框与包含控件(您的窗体)的右边框的距离应始终相同。
您也可以在设计器窗口中设置此属性。
澄清后更新:
这是一个复杂的情况。我发现的一种解决方案(尽管我不确定它是否最好)可能是使用 Panel
来包含 CheckBox
。
- 将
Panel
放在CheckBox
可能具有的最左侧位置 - 设置
Panel
的大小,使右边框位于CheckBox
应具有的最右边框(加上几个像素) - 将
Panel
的MaximumSize
设置为此精确大小 - 将
Panel
的Anchor
属性设置为Top |左|对的
- 将
CheckBox
放在Panel
的右边缘 - 将
CheckBox
的Anchor
属性设置为Top |对的
现在,如果您放大 Form
,Panel
会因为 MaximumSize
值而保持其大小。
如果缩小 Form
,Panel
也会因为它的 AnchorStyle.Right
而缩小。 CheckBox
由于其自身的 AnchorStyle.Right
而向左移动。
当您再次放大 Form
时,Panel
也会变大,但只会再次达到其 MaximumSize
。 CheckBox
向右移动以跟上不断增长的 Panel
。
希望这能如您所愿。如有必要,我稍后可以添加屏幕截图。
关于C# Windows 窗体 - 调整窗体大小时移动元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42200457/