1


我在我的应用程序中 使用EhLib DBGridEh ,当我开始使用 Scrollbar 滚动它时,我遇到了高亮问题。
如果我不选择网格中的单元格,那么突出显示将正常工作。
但是,如果我选择单元格并开始使用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;

有在我的网格中启用的属性的完整列表:
选项

  1. dg编辑
  2. dg 标题
  3. dg指标
  4. dgColumnResize
  5. dgColLines
  6. dgRowLines
  7. dgTabs
  8. dgAlwaysShowSelection
  9. dgMultiSelect

选项Eh

  1. dghFixed3D
  2. dghResizeWholeRightPart
  3. dghHighlightFocus
  4. dghClearSelection
  5. dghMultiSortMarking
  6. dghEnterAsTab
  7. dghRowHighlight
4

1 回答 1

2

这是 DBGridEh 的一个特性。如果它有多选区域,它会停止行高亮以避免在选定区域和高亮当前行的单元格之间产生误解。

德米特里B

于 2012-03-24T09:23:35.427 回答