设置ListView显示CheckBox

Posted cyzgg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置ListView显示CheckBox相关的知识,希望对你有一定的参考价值。

最近在开发的时候用到ListView,简单总结一下它的用法。

1.让ListView像DBGrid数据库那样显示数据:将ListView的ViewStyle设置为vsReport。

2.向ListView中添加数据:我的数据是从数据库中查询得到的,比如我用的是ADOQuery, 先定义变量:

var

   MyItem:TListItem

begin

ADOQuery1.First;
   while not ADOQuery1.Eof do
     begin
        MyItem:= self.ListView1.Items.Add;
         MyItem.Caption:= ADOQuery1.FieldByName(‘sfxm‘).AsString;      
          MyItem.SubItems.Add(ADOQuery1.FieldByName(‘qm‘).AsString);    
          MyItem.SubItems.Add(ADOQuery1.FieldByName(‘zm‘).AsString);    
         MyItem.SubItems.Add(ADOQuery1.FieldByName(‘sys‘).AsString);   
         MyItem.SubItems.Add(ADOQuery1.FieldByName(‘sfbz‘).AsString);  
         MyItem.SubItems.Add(ADOQuery1.FieldByName(‘ysje‘).AsString);

         MyItem.SubItems.Add(ADOQuery1.FieldByName(‘yf‘).AsString);   
         MyItem.SubItems.Add(ADOQuery1.FieldByName(‘cbr‘).AsString);   
          MyItem.SubItems.Add(ADOQuery1.FieldByName(‘ID‘).AsString);
      ADOQuery1.Next;
    end;

end;

这样ListView就可以像DBGrid那样显示数据了。

3.设置ListView显示CheckBox:只需在属性中将CheckBoxes设置为True即可。

4.让ListView显示CheckBox后,或许需要得到ListView哪一行被(打勾)选中。这个我是用一个简单的循环判断。比如说我想实现这个功能:当ListView某行被选中后,TotalL(TLable控件)能够动态的计算被选中行的第4列的值。我的代码如下:

procedure TF_qfjf.ListView1Click(Sender: TObject);
var
    I: Integer;
    Total : Double;
begin
   Label17.Caption:= ‘‘;
Total:= 0;
    for I:= 0 to ListView1.Items.Count - 1 do
      if ListView1.Items.Item[I].Checked = True then
         Total:= Total + StrToFloat(ListView1.Items[I].SubItems.Strings[4]);
     TotalL.Caption:= FloatToStr(Total) + ‘    ‘ + ‘RMB‘;
end;

注:ListView列的序号这样计算,左侧第一列是标签,不做计算,第二列是0,第三列是1,依此类推

以上是关于设置ListView显示CheckBox的主要内容,如果未能解决你的问题,请参考以下文章

ListView设置EmptyView之后不显示

c# listview 大图标显示时,项中的标签文本居中显示怎么设置?

listview必须设置数据适配器才能显示出来

c#listview添加控件时不显示滚动条

Xamarin.Forms ListView:设置点击项的突出显示颜色

Android:无需点击即可在Listview上设置焦点突出显示