当网格失去焦点到另一个非模态表单时,Delphi XE2 中是否有办法在 StringGrid 中保留 InPlaceEditor 的突出显示?
我当前的 StringGrid 选项是:
如果没有,我曾希望在失去焦点后使用下面的代码来保留当前单元格的高亮显示,但是当单元格不再是当前单元格时,我会遇到一些问题。
我是否需要在下面的代码中添加“else”才能将颜色更改回未选中单元格的原始颜色?有什么注意事项吗?
procedure TForm1.sgMultiDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if (ACol = sgMulti.Col) and (ARow = sgMulti.Row) then
begin
sgMulti.Canvas.Brush.Color := clYellow;
sgMulti.Canvas.FillRect(Rect);
sgMulti.Canvas.TextRect(Rect, Rect.Left, Rect.Top, sgMulti.Cells[ACol, ARow]);
if gdFocused in State then
sgMulti.Canvas.DrawFocusRect(Rect); user
end;
end; { sgMultiDrawCell}
编辑:下面的屏幕截图阐明了它今天的表现。我希望当前单元格在失去焦点时比底部屏幕截图更清晰