重なったパネルを切り替えるのにはTabControlを使う事が多いですが、タブの部分を非表示にしたい場合もあります。
例えば、下図のようにボタンを押すたびに、右半分の画面を切り替えるには、どうするか??
基本的には、切り替える部分をユーザーコントロールで、それぞれ作成し、BringToFront()メソッドでコントロールを全面へ持ってきます。
まず、切り替える画面をそれぞれ、ユーザーコントロールで作成します。
ユーザーコントロールを作成し、貼り付けるフォーム(ここではForm1)を表示すると、ゆーるボックス上に作成したユーザーコントロールが表示されています。
この2つのコントロールを重ねて配置し、それぞれのコントロールのDockプロパティをFillにしておきます。
DockをFillにすると、それぞれのコントロールを選択しづらくなりますが、プロパティの右上にあるプルダウン(▼マーク)をクリックすると、コントロール一覧が表示されるので、これで選択します。
ちなみに、ユーザーコントロール上でマウスの右ボタンを押しても、ユーザーコントロールは一覧に表示されませんでした。。。
この状態で、ボタンのイベントで、それぞれのコントロールをBringToFront()メソッドで前面へ持ってくるようにします。
private void button1_Click(object sender, EventArgs e)
{
this.userControl11.BringToFront();
}
private void button2_Click(object sender, EventArgs e)
{
this.userControl21.BringToFront();
}
すると、最初の画面のようにウィンドウが切り替わってくれます。
これで、ちょっと、ウィンドウを広く使える気分。
←C#へ戻る
コメント