如何在TListView控件中隐藏分隔空单元格与相邻单元格的网格线?这将像HTML colspan
表格属性或Excel的“合并单元格”命令。我希望有文字的单元保留它们的正常边界。如何在列表视图中省略空单元格的网格线?
回答
你可以使用TVirtualStringTree。它有自动跨越空列的AutoSpanColumns选项。
+1。由于我的尝试建议Windows树视图无法做到这一点(强健),第三方组件可能是一个不错的选择。 – 2011-02-28 20:43:36
为什么这是低调的? – 2011-02-28 21:35:21
@Andreas - 不确定,但也许是因为答案不是以*开始回答问题,但是.. * .. – 2011-02-28 22:54:09
似乎没有任何可靠的解决方案来解决这个问题。
一个坏的解决方案,但是,是
procedure TForm4.FormShow(Sender: TObject);
var
i: integer;
begin
ListView1.ViewStyle := vsReport;
ListView1.Columns.Add.Caption := 'Col 1';
ListView1.Columns.Add.Caption := 'Col 2';
ListView1.Columns.Add.Caption := 'Col 3';
ListView1.GridLines := false; // You cannot have grid lines...
for i := 0 to 10 do
with ListView1.Items.Add do
begin
if i <> 5 then
begin
Caption := 'Test';
SubItems.Add('test');
SubItems.Add('test');
end
else
Caption := 'This is a very, very long caption';
end;
end;
var
ColWidths: array of integer;
procedure TForm4.ListView1AdvancedCustomDraw(Sender: TCustomListView;
const ARect: TRect; Stage: TCustomDrawStage; var DefaultDraw: Boolean);
var
i, j: Integer;
begin
if Stage <> cdPrePaint then Exit;
if length(ColWidths) <> TListView(Sender).Columns.Count then
begin
SetLength(ColWidths, TListView(Sender).Columns.Count);
Exit;
end;
for i := 0 to length(ColWidths) - 1 do
if ColWidths[i] <> Sender.Column[i].Width then
begin
Sender.Invalidate;
for j := 0 to length(ColWidths) - 1 do
ColWidths[i] := Sender.Column[i].Width;
end;
end;
procedure TForm4.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
var DefaultDraw: Boolean);
var
r: TRect;
begin
DefaultDraw := (Item.SubItems.Count <> 0);
if not DefaultDraw then
begin
FillRect(Sender.Canvas.Handle, Item.DisplayRect(drBounds), GetStockObject(WHITE_BRUSH));
r := Item.DisplayRect(drBounds);
DrawText(Sender.Canvas.Handle, Item.Caption, length(Item.Caption), r, DT_SINGLELINE or DT_LEFT or DT_VCENTER)
end;
end;
Listview colspan is hard to get right. Don't do it. http://privat.rejbrand.se/listviewcolspan.png
这是不好的,因为它是不稳健。它闪烁,它是越野车,它是“哈克”。它在未来的Windows版本中可能无法正常工作。基本上,Windows列表视图控件不应该像HTML那样做colspan
,我想。
- 1. 省略号在表格单元格中不起作用
- 2. 在表格视图单元格中嵌入表格视图
- 3. 如何删除表格视图单元格中隐藏行上的空格?
- 4. 在表格视图单元格中绘制线条
- 5. 自定义表格视图中的空单元格
- 6. 添加文本溢出:省略号;到表格单元格
- 7. 如何禁用WindowsForms DataGridView中单元格文本的省略号?
- 8. 如何在表格视图行中放置多个单元格?
- 9. 如何在表格视图单元格中访问多个UITextView
- 10. 如何在表格视图单元格中显示数据
- 11. 如何在表格视图的单元格中添加操作表格
- 12. 如何添加表格视图单元格中的复选框?
- 13. 省略号的HTML表格
- 14. 复制列表视图单元格
- 15. 如何在网格视图中制表?
- 16. iPhone:在普通视图表中隐藏空表格单元
- 17. 当滚动表格视图单元格的视图,单元格文本更改
- 18. iOS的自定义表格视图单元格是空
- 19. 如何在表格视图中显示图像的网格
- 20. 在asp.net中更新颜色的网格视图单元格
- 21. 围绕在网格视图单元格中的数据
- 22. 在表格视图中获取单元格上方的图像
- 23. 如何在图像中像这样添加表格视图中的单元格?
- 24. 如何在网格视图中使用网格视图?
- 25. 如何在表格视图的单元格中使用summery元素?
- 26. 表格视图单元格可选 - swift
- 27. 调整表格视图单元格
- 28. 在Swift中访问表格视图单元格中的数据
- 29. 当单元格插入表格时,自定义表格视图单元格内的图像视图消失
- 30. HTML网格视图和列表视图
你是什么意思删除空列? – 2011-02-28 18:07:38
经过一段时间的调查,似乎没有任何可靠的解决方案。 – 2011-02-28 18:25:11
我从来没有完全明白为什么人们会提出尚未明确的问题。 – 2011-02-28 19:23:14