C# Windows 窗体 - 调整窗体大小时移动元素

标签 c# winforms dialog responsive

我需要一些有关 WinForms 响应式表单的帮助。我在位置 xy 有一个复选框。当我将表单调整为较小尺寸时,此复选框应移至左侧,更靠近其他元素。

你可以在我制作的图片上看到它。我不知道,我必须在那里更改哪个属性才能实现这一点。要移动的复选框用红色框标记。

当我放大表单时,这个元素必须停留在它的默认位置。当我减少它时,复选框必须向左移动。当我再次放大它时,复选框必须移回其默认位置。

this is the default form

the form is smaller now, the checkbox has to move to the left

最佳答案

您需要设置 Anchor属性:

checkBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;

这表明控件的右边框与包含控件(您的窗体)的右边框的距离应始终相同。

您也可以在设计器窗口中设置此属性。


澄清后更新:

这是一个复杂的情况。我发现的一种解决方案(尽管我不确定它是否最好)可能是使用 Panel 来包含 CheckBox

  • Panel 放在 CheckBox 可能具有的最左侧位置
  • 设置 Panel 的大小,使右边框位于 CheckBox 应具有的最右边框(加上几个像素)
  • PanelMaximumSize 设置为此精确大小
  • PanelAnchor 属性设置为 Top |左|对的
  • CheckBox 放在 Panel 的右边缘
  • CheckBoxAnchor 属性设置为 Top |对的

现在,如果您放大 FormPanel 会因为 MaximumSize 值而保持其大小。

如果缩小 FormPanel 也会因为它的 AnchorStyle.Right 而缩小。 CheckBox 由于其自身的 AnchorStyle.Right 而向左移动。

当您再次放大​​ Form 时,Panel 也会变大,但只会再次达到其 MaximumSizeCheckBox 向右移动以跟上不断增长的 Panel

希望这能如您所愿。如有必要,我稍后可以添加屏幕截图。

关于C# Windows 窗体 - 调整窗体大小时移动元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42200457/

相关文章:

google-apps-script - 谷歌应用程序脚本: a select drop down list in google sheet

java - 自定义警报对话框中的 Admob(Ads)

javascript - 使用 javascript 下拉列表

c# - C# 中的数字文本框

c# - 如何在 C# 中比较两个列表框的项目名称?

c# - 重新启动其他应用程序。 C#、.net

c# - 从 MVC 区域重定向将我重定向到顶级操作?

c# - MediaElement 在更改源后播放声音 2 次

C# 在你的 winforms 中嵌入 youtube/videos

c# - 从另一个表单更新对话框