我一直遇到DBLookupComboBox无法正常工作的问题。填充它并将其指向适当的表可以正常工作。选择一个项目并插入到适当的表中也可以正常工作。
但是,向下滚动DBLookupComboBox项列表根本不起作用。完全忽略鼠标滚轮。
我在另一篇文章中发现了下面的代码,它可以让滚动工作,但是滚动一次跳两个项目,完全跳过一个项目。
procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
if (DBLookupComboBox1.Focused() = true) then DBLookupComboBox1.Perform(WM_KEYDOWN, VK_DOWN, 0);
end;
procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
if (DBLookupComboBox1.Focused() = true) then DBLookupComboBox1.Perform(WM_KEYDOWN, VK_UP, 0);
end;
组合框中大约有30个项目,所以点击滚动条上的向上/向下有点不起作用。
任何帮助非常感谢,非常感谢。
1条答案
按热度按时间fzwojiic1#
您应该添加“Handled:= True”。