我正在为从 Control 继承而不是 ButtonBase 的按钮创建一个基类。
我正在使用反射器查看 ButtonBase 以确保我不会忽略任何重要的内容,并且我对 WndProc 方法的内容感到困惑。
那里检查按钮向上、单击和捕获更改等内容,据我所知,这些都在类的相关“On”方法中处理。
有谁知道他们为什么在里面?
它也是原生 Windows 按钮控件的包装器。简而言之:
您不必担心任何这些,因为您不包装本机按钮并且不需要所有者绘制。请确保您实现了 IButtonControl,以便您的按钮在按下 Enter 和 Escape 并被选为表单的 Accept/CancelButton 时行为正确。不是绝对必要的,但是当您从 ButtonBase 而不是 Control 继承时,它是自动的。