Windows Form
是Control
的一种类型,Controls
是具有Size
属性的UI元素以及与OnResize
等大小相关的方法}和OnSizeChanged
。
但是,表单也有OnResizeBegin
(和OnResizeEnd
),这些内容在Control
中找不到。这个遗漏是一种疏忽,一种有先见之明的设计决定,还是完全不同的东西?
答案 0 :(得分:1)
当用户更改表单大小时会引发OnResizeBegin事件,而不是通过programmaticaly更改表单属性(如大小)。大多数控件都无法以这种方式调整大小,因此它没有OnResizeBegin事件。
答案 1 :(得分:0)
当您向像Control这样具有如此大量后代的基类添加内容时,无论是否有意义,它都将被所有内容继承(例如,许多程序员会关注单选按钮是否开始调整大小?)。您添加的每个方法,属性和事件都会使API变得更加复杂。
现在控制中还有很多其他的例子对每个孩子都没有意义(例如Label控件上的Leave事件),但那是与形式相矛盾的一部分。 WPF中使用的附加属性系统更加优雅。