悬停在FMX TComboBox上时,如何禁用鼠标滚轮滚动?我尝试过重写MouseWheel
方法,但没有遇到任何问题。我很可能做错了,因为我没有压倒一切的经验。参考:鼠标滚轮
我已经删除了Inherited
:
type
TComboBoxOverride = class(TComboBox)
procedure MouseWheel(Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); override;
end;
// I've tried changing the control on the class overriding the method. No luck
cbbServerMap: TComboBoxOverride;
{ TComboBoxOverride }
procedure TComboBoxOverride.MouseWheel(Shift: TShiftState; WheelDelta: Integer;
var Handled: Boolean);
begin
Handled := True;
end;
我找到了以下VCL和DevEx的SO帖子,但我很难将其转换为FMX,参考:如何在TcxComboBox中抑制鼠标滚轮
在TCustomComboBox.MouseWheel
方法上设置断点时,我可以看到它忽略了我的覆盖。
在OnMouseWheel
事件中,只需放入Abort;
。
例如:
procedure TfrmMinorInjury.cboDischargetypeMouseWheel(Sender: TObject;
Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean);
begin
Abort;
end;
我解决了同样的任务,但在滚动框中有备忘录
我的解决方案是
- 在滚动框中处理鼠标滚轮。鼠标滚轮上。设置Handle:=true
- 直接调用滚动框。备忘录的OnMouseWheel中的OnMouse Wheel