您的位置:首页 > 编程语言 > C语言/C++

ListView关键技术研究 C++Builder

2013-04-10 10:07 211 查看
//---------------------------------------------------------------------------
//  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
}
}
//---------------------------------------------------------------------------


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: