C++Builder Tips


リストビュー・列幅の自動調整


リストビューの列幅を自動調整するサンプルです。

//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  ListView1->ViewStyle = vsReport;

  ListView1->Columns->Add()->Caption = "Field-1";
  ListView1->Columns->Add()->Caption = "Field---2";
  ListView1->Columns->Add()->Caption = "Field-----3";
  ListView1->Columns->Add()->Caption = "Field-------4";
  ListView1->Columns->Add()->Caption = "Field---------5";

  for (int i=0;i<10;i++){
    ListView1->Items->Add()->Caption = i;
    ListView1->Items->Item[i]->SubItems->Add("項目1-" + IntToStr(i));
    ListView1->Items->Item[i]->SubItems->Add("項目2-" + IntToStr(i));
    ListView1->Items->Item[i]->SubItems->Add("項目3-" + IntToStr(i));
    ListView1->Items->Item[i]->SubItems->Add("項目4-" + IntToStr(i));
  }

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  //列幅の自動調整(カラムヘッダに合わせる)
  //TListColumn::WidthType参照の事
  for (int i=0;i<ListView1->Columns->Count;i++){
    ListView1->Column[i]->Width = -2;
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  //列幅の自動調整(テキストに合わせる)
  //TListColumn::WidthType参照の事
  for (int i=0;i<ListView1->Columns->Count;i++){
    ListView1->Column[i]->Width = -1;
  }
}

//---------------------------------------------------------------------------

DownLoad bcbtips075.lzh 4KB(BCB5)