我们创建一个包含5列的列表视图。在一个函数中,我们按顺序在前3个cols中添加数据。在第二个函数中,我们想要将字符串添加到第五个col。在第二功能之前,柱4可以是空白的或填充的。我们只想跳过该列并在第五列中添加数据。或者问题可以归结为检查第四个col'值。怎么检查?我们尝试了 如果listview.items [i] .SubItems.Strings [2] =''...,它将提示越界。
请提供一些建议。 提前谢谢。
答案 0 :(得分:3)
使用item.SubItems属性时,TListView
中的列不能skip
,但您可以为列分配空字符串。
你必须这样做:
首先在添加新TItemList
时填写您的列。
item:=listview.Items.Add();
item.captiom:='Data col1';
item.SubItems.Add('Data col2');
item.SubItems.Add('Data col3');
item.SubItems.Add('');//empty
item.SubItems.Add('');//empty
然后在您的其他函数中,访问任何列以检查它是否为空或用于添加数据。
if listview.Items.Item[0].SubItems[2]<>'' then //check if the fourth column of the listiew is empty
listview.Items.Item[0].SubItems[2]:='Data col4' //adding the data
答案 1 :(得分:0)
将字符串添加到listview的第一项的第五列:
ListView_SetItemText(ListView1.Handle, 0, 4, 'fifth column');
要在listview的第一项的第五列中获取字符串:
var
ItemText: array [0..259] of Char;
begin
ListView_GetItemText(ListView1.Handle, 0, 4, @ItemText, SizeOf(ItemText));
ShowMessage(ItemText);
编辑请注意,这种向子项添加文本的方法会绕过某些VCL机制,例如,您可以获得'SubItem.Count'为'0'并仍然具有子项目上的文字。如果这很重要,我会使用RRUZ的方法。