我在我的应用程序中使用EhLib DBGridEh,当我开始使用滚动条滚动它时,我遇到了高位问题。
如果我没有在网格中选择单元格,那么highliting将正常工作
但是,如果我选择单元格并使用 ScrollBar 开始滚动,那么只会有一个单元格而不是整个原始单元格,而之前的原始格式也会高亮。
你可以在图片上看到这些
就在几个星期前,当我使用鼠标滚轮滚动网格时,我遇到了同样的情况。我通过添加应用程序消息的处理解决了这个问题。
procedure TMainForm.AppEventHandlerMessage(var Msg: tagMSG;
var Handled: Boolean);
var
i: SmallInt;
begin
if Msg.message = WM_MOUSEWHEEL then
begin
Msg.message := WM_KEYDOWN;
Msg.lParam := 0;
i := HiWord(Msg.wParam) ;
if i > 0 then
Msg.wParam := VK_UP
else
Msg.wParam := VK_DOWN;
Handled := False;
end;
end;
我的网格中已启用属性的完整列表:
的选项
OptionsEh
答案 0 :(得分:2)
这是DBGrid的一个功能。如果它有多选区域,它会停止行高亮,以避免在选区域和突出显示当前行的单元格之间产生误解。
Dmitry Bp>