在vsReport模式下仅从TListView的标题更改字体样式

时间:2019-07-10 19:32:35

标签: delphi vcl tlistview

我在TListView模式下的vsReport中有3列,并且启用了Checkboxes属性。我想在选中一项时将标题字体设为粗体。我尝试使用OnCustomDrawItem事件,但使所有行都变为粗体。

procedure TfrmMain.lvwCompsCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if (Item.Checked) then
    Sender.Canvas.Font.Style := [fsBold]
  else
    Sender.Canvas.Font.Style := [];
end;

我在方法OnCustomDrawItem中找不到如何隔离第一列(标题)。因此,我也尝试使用OnCustomDrawSubItem事件,从子项目中“删除”粗体,但没有成功。

procedure TfrmMain.lvwCompsCustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
  if (SubItem > 0) then
    Sender.Canvas.Font.Style := [];
end;

请,有人可以帮我吗?

0 个答案:

没有答案