ListView关键技术研究 C++Builder

来源:互联网 发布:墨墨背单词 知乎 编辑:程序博客网 时间:2024/04/30 06:16
//---------------------------------------------------------------------------//  ListView详细研究#include <vcl.h>#include <stdio.h>#pragma hdrstop#include "Unit1.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)    : TForm(Owner){    this->cnt=0;    //listview设置    this->lv1->ReadOnly = true;    this->lv1->RowSelect = true;    this->lv1->ViewStyle = vsReport;}//---------------------------------------------------------------------------void __fastcall TForm1::btn_display1Click(TObject *Sender){    //设置测试数据    for (int i=0; i< lv1->Columns->Count; i++)    {        TListItem *list = lv1->Items->Add();        list->Caption = ++ this->cnt;        list->SubItems->Add("lx") ;        list->SubItems->Add("描述lx");    }              }//---------------------------------------------------------------------------//删除所选行void __fastcall TForm1::btn_delClick(TObject *Sender){    char str[100]="";    if(0==this->lv1->Items->Count)    {        ShowMessage("列表为空!");        return;    }    int i;    for (i=0; i<this->lv1->Items->Count; i++)    {        if ( this->lv1->Items->Item[i] == this->lv1->Selected )  //被选中行        {            //显示            sprintf(str, "第%d行被选中!", i+1);            ShowMessage( AnsiString(str) );                        //删除            this->lv1->Items->Item[i]->Delete();            this->cnt --;                        return;            }    }    if (i == this->lv1->Items->Count)    {        ShowMessage("无选中行!");        return;    }}//---------------------------------------------------------------------------void __fastcall TForm1::btn_clrClick(TObject *Sender){    this->lv1->Items->Clear();    this->mmo1->Clear();    this->cnt=0;}//---------------------------------------------------------------------------//第二种显示void __fastcall TForm1::btn_display2Click(TObject *Sender){    for (int j=0; j<this->lv1->Items->Count; j++)    {        AnsiString s1=this->lv1->Items->Item[j]->SubItems->Text;        this->mmo1->Lines->Add(s1);        //第j行,除caption外多列数据以\r\n隔开   mmo1显示之        AnsiString s2=this->lv1->Items->Item[j]->SubItems->Strings[0];        //第一列caption,第二列Strings[0]               }    for (int i=0; i<3; i++)    {        this->lv1->Items->Add();        this->cnt++;        TListItem *ItemLx = this->lv1->Items->Item[this->cnt-1] ;        ItemLx->Caption = this->cnt;        ItemLx->SubItems->Add("hxj");            //OK        ItemLx->SubItems->Add("hxj描述");        //ItemLx->SubItems->Strings[0]="hxj";    //Err, String[index]还不可用        //ItemLx->SubItems->Strings[1]="hxj描述";        //这一列只有先建立了才可用,见上面ItemLx->SubItems->Add    }}//---------------------------------------------------------------------------