我在上面带有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
。