这可能听起来是一个非常愚蠢的问题,但我注意到当我从
我正在开发一些具有自定义外观的控件,其中包括按钮。默认用户控件类声明如下:
当我进行点击测试时,自定义按钮的行为良好,就像winforms按钮一样,不会错过任何一个点击。
只是为了测试,我向我的表单添加了一个列表框,并将相同的测试代码添加到其单击事件中,它的行为像一个非按钮,只在偶尔注册点击。
我认为点击应该被一致地处理,但显然这并不简单。
由此产生的问题是:
按钮有什么不同之处,如果无法继承自按钮,我该怎么做才能确保正确的点击行为?
Button
或UserControl
继承我的类时,自定义按钮的Click
行为会有所不同。我正在开发一些具有自定义外观的控件,其中包括按钮。默认用户控件类声明如下:
public partial class cButton : UserControl
在我添加了所有GUI内容后,我将其添加到表单中并测试了点击行为。
当我快速连续点击按钮时,它仅注册每隔一个点击,甚至不是每个点击。我以为测试代码有问题,但是当我将完全相同的代码复制到普通的Winforms按钮上时,无论多快都可以注册每个点击。
编辑:如果我不快速点击即等待几秒钟后再点击,则用户控件会注册每个点击。
我将我的自定义控件声明更改为从按钮类继承,并对任何其他代码进行了绝对不改变:
public partial class cButton : Button
当我进行点击测试时,自定义按钮的行为良好,就像winforms按钮一样,不会错过任何一个点击。
只是为了测试,我向我的表单添加了一个列表框,并将相同的测试代码添加到其单击事件中,它的行为像一个非按钮,只在偶尔注册点击。
我认为点击应该被一致地处理,但显然这并不简单。
由此产生的问题是:
按钮有什么不同之处,如果无法继承自按钮,我该怎么做才能确保正确的点击行为?