c++ builder XE4, 10.2 Tokyo > TPageControl > 特定のTabSheetを非表示にする


動作確認
C++ Builder XE4
RAD Studio 10.2 Tokyo Update 2 (追記: 2017/12/28)

TPageControlにて実装途中の機能がある場合、特定のTabSheetを非表示にしておきたい場合がある。

コードでの非表示

参考 Delphi:TPageControl でタブ部分を非表示にする方法 @ ゆめとちぼーとげんじつと

情報感謝です。

C++ Builderの場合、以下のコードで非表示にできました。

Unit1.cpp
void __fastcall TForm1::FormShow(TObject *Sender)
{
    for (int idx=2; idx < PageControl1->PageCount; idx++) {
        PageControl1->Pages[idx]->TabVisible = false;
    }
}

FormShow時の処理が適切かどうかは要検討。

デザイン時

実行時

デザインでの非表示

TabSheet3などを選択してプロパティ「TabVisible」をfalseにすることでそのTabSheetを非表示にできる。

こちらでの設定時の欠点は、フォームのデザインにfalseにしたTabSheetが表示されなくなること (下図)。

オブジェクトインスペクタでのリストには残っている(下図)。

フォームのデザインを見て、非表示になっているTabSheetに気づくには、オブジェクトインスペクタのリストをくまなく読まないといけなくなる。