我在 Delphi 应用程序中使用 TDBGrid 组件,当我更改行颜色时,网格线变得不清楚或几乎不可见。
那么,有人可以告诉我们如何改变网格线的颜色吗?
我的意思是:如何更改单元格边框的颜色(见下图)
细胞边界
您在寻找吗
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const [Ref] Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var
R: TRect;
begin
R:= Rect;
with DBGrid1.Canvas do
begin
Brush.Color:= clRed;
R.Offset(Column.Width, 0);
FillRect(R);
R:= System.Types.Rect(Rect.Left, Rect.Bottom - 1, Rect.Right, Rect.Bottom);
FillRect(R);
end;
end;
结果将是这样的:
更好的方法(来自汤姆·布伦伯格 https://stackoverflow.com/users/2292722/tom-brunberg评论)是使用FrameRect()
as
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const [Ref] Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with DBGrid1.Canvas do
begin
Brush.Color:= clRed;
FrameRect(Rect);
end;
end;
Use 框架矩形() https://learn.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-framerect在矩形区域周围绘制 1 像素宽的边框,该边框不会用画笔图案填充矩形的内部。
要使用钢笔绘制边界,请使用Polygon https://learn.microsoft.com/en-us/windows/desktop/api/wingdi/nf-wingdi-polygon method
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)