C#プログラム

【C#】タブの無いTabControlっぽいものを作る

重なったパネルを切り替えるのにはTabControlを使う事が多いですが、タブの部分を非表示にしたい場合もあります。

例えば、下図のようにボタンを押すたびに、右半分の画面を切り替えるには、どうするか??

基本的には、切り替える部分をユーザーコントロールで、それぞれ作成し、BringToFront()メソッドでコントロールを全面へ持ってきます。

タブのないTabControl

 

まず、切り替える画面をそれぞれ、ユーザーコントロールで作成します。

タブのないTabControl

 

ユーザーコントロールを作成し、貼り付けるフォーム(ここではForm1)を表示すると、ゆーるボックス上に作成したユーザーコントロールが表示されています。

タブのないTabControl

 

この2つのコントロールを重ねて配置し、それぞれのコントロールのDockプロパティFillにしておきます。

タブのないTabControl

 

DockをFillにすると、それぞれのコントロールを選択しづらくなりますが、プロパティの右上にあるプルダウン(▼マーク)をクリックすると、コントロール一覧が表示されるので、これで選択します。

タブのないTabControl

 

ちなみに、ユーザーコントロール上でマウスの右ボタンを押しても、ユーザーコントロールは一覧に表示されませんでした。。。

タブのないTabControl

 

この状態で、ボタンのイベントで、それぞれのコントロールをBringToFront()メソッドで前面へ持ってくるようにします。

private void button1_Click(object sender, EventArgs e)
{
    this.userControl11.BringToFront();
}

private void button2_Click(object sender, EventArgs e)
{
    this.userControl21.BringToFront();
}

すると、最初の画面のようにウィンドウが切り替わってくれます。

タブのないTabControl

 

これで、ちょっと、ウィンドウを広く使える気分。

 

C#へ戻る

コメント

タイトルとURLをコピーしました