為什么ListView1.Items.Insert(0)后新插入的ListItem沒有顯示在應有的位置?
測驗代碼如下:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
this->ListView1->ViewStyle=vsIcon;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TListItem *li;
for(int i=1;i<=3;++i)
{
li=this->ListView1->Items->Add();
li->Caption=L"add"+IntToStr(i);
}
li=this->ListView1->Items->Insert(0);
li->Caption=L"insert0";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1Click(TObject *Sender)
{
this->Caption=IntToStr(this->ListView1->ItemIndex);
}
//---------------------------------------------------------------------------
uj5u.com熱心網友回復:
百度到一個很笨的辦法:ListItem的SetPosition方法,然后再Arrange重新排列。百度到C#的ListView也是如此,估計是win32 listview控制元件本來如此,類別庫封裝以后也只能如此。
uj5u.com熱心網友回復:
要么就全部Clear清空專案,然后按一定順序重新添加,再使某專案可見,不過這樣可能會改變滾動條位置(也即專案在作業區的位置)。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/244379.html
標籤:VCL組件開發及應用
