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 }}//---------------------------------------------------------------------------