代码之家  ›  专栏  ›  技术社区  ›  I. J. Kennedy ShankarSangoli

为什么窗体有onResizeBegin,而不是控件?

  •  1
  • I. J. Kennedy ShankarSangoli  · 技术社区  · 14 年前

    窗户 Form 是一种类型的 Control Controls 是具有 Size 属性以及与大小相关的方法,例如 OnResize OnSizeChanged .

    但是形式也有 OnResizeBegin (和) OnResizeEnd )中未找到 控制 . 这个遗漏是一个监督,一个有先见之明的设计决策,还是完全是别的什么?

    2 回复  |  直到 12 年前
        1
  •  1
  •   STO    14 年前

    OnResizeBegin事件是在用户更改窗体大小时引发的,而不是通过编程方式更改窗体属性(如大小)引发的。大多数控件不能以这种方式调整大小,因此它没有OnResizeBegin事件。

        2
  •  0
  •   Tim Trout    14 年前

    当您向具有如此多子代的基类(如控件)添加某些内容时,它将被所有内容继承,无论是否有意义(例如,许多程序员是否会关心单选按钮开始调整大小?)。您添加的每个方法、属性和事件都会使API变得更加复杂。

    现在有很多其他的例子表明,控制中的事情对每个孩子都没有意义(例如,标签控制中的休假事件),但这是形式上矛盾的泥沼的一部分。WPF中使用的附加属性系统更加优雅。