我在上面带有TSpinEdit控件的窗体上有一个默认按钮。当TSpinEdit控件具有焦点并且用户按下Enter键而不是单击默认按钮时,用户会听到系统蜂鸣声,因为Enter键对于TSpinEdit无效。

通常,为了避免发出蜂鸣声,我将使用OnKeyPress事件并将Key := 0设置为跳过按键。然后,我可以在默认按钮上执行click方法。但是,在这种情况下,由于Enter键无效,因此不会触发OnKeyPress。

OnKeyDown触发,但是当我在此处设置Key := 0时,它不会停止系统提示音。

因此,当按下TSpinEdit控件上的Enter键时,如何禁用系统提示音?

我在Delphi 5上,他们没有包含Spin.pas的源代码。

最佳答案

您必须继承自TSpinEdit并重写IsValidChar以避免MessageBeep调用,或者重写KeyPress避免IsValidChar

10-04 22:28