gpt4 book ai didi

.net - 为什么 WinForms Control.Bottom 和 Control.Right 是只读的?

转载 作者:行者123 更新时间:2023-12-05 08:21:15 25 4
gpt4 key购买 nike

我知道可以通过操作 Control.TopControl.Height 来对齐控件的底部。同样 Control.Right。但是为什么.NET 决定不直接修改这些属性呢?自从最近几年我一直在处理控制定位以来,这令人沮丧。

最佳答案

简答:

我相信他们已将 BottomRight 设置为只读,不是因为它在技术上是必需的,而是作为一种记录方式,这些 在修改 Top/HeightLeft/Width 时重新计算的属性。

更长的答案:

有两个属性集:一个用于绝对坐标(TopBottomLeftRight) , 和一个维度(Height, Width)。它们之间的关系通过以下两个不变量定义:

  1. 宽度 == 右 - 左
  2. 高度 == 底部 - 顶部

现在,例如,如果 Microsoft 决定 Top 属性应该是可写的,他们需要做出一个进一步的设计决策:Top 中的更改...

  • 影响高度并保留底部,或者
  • 保留 Height 并影响 Bottom

除非他们进一步引入某种允许用户选择的“ anchor ”属性,否则 Microsoft 必须决定这些后果之一以保证上面的不变 (2)。

显然,他们选择了两种备选方案中的后者。接下来,Microsoft 需要记录他们的决定。他们可以在他们的 MSDN 引用页面上提到调整 Top 的后果……结果他们就是这么做的:

Changes made to the Height and Top property values cause the Bottom property value of the control to change.Remarks section of the MSDN reference page for the Control.Top property

... 或者他们可以将 Bottom 属性声明为只读,向我们程序员建议此属性取决于其他两个属性(Top高度)...他们完成了:

The Bottom property is a read-only property. You can manipulate this property value by changing the value of the Top or Height properties [...]Remarks section of the MSDN reference page for the Control.Bottom property

因此,他们用英语并通过代码记录了他们的(任意)设计决定。

关于.net - 为什么 WinForms Control.Bottom 和 Control.Right 是只读的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11361660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com