C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■87308 / )  パネルとスプリッターを使った時の処理方法について
□投稿者/ 夜叉丸 (101回)-(2018/05/09(Wed) 18:27:21)

分類:[.NET 全般] 

2018/05/09(Wed) 18:54:28 編集(投稿者)

フォームにパネル2つとスプリッター2を1つ置きます。

フォームサイズを(546, 359)にして Padding を All=10 にすると
ClientSize が(510, 300)になったので、
panel1 を Size=(200, 300), Dock = Right
splitter1 を Size=(10, 300), Dock = Right
panel2 を を Size=(300, 300), Dock = Fill
で追加しました。

この状態で、フォームのサイズやスプリッターを移動しても
panel1の幅200、panel2の幅300をキープしたかったので、
以下のようにイベントを追加しました。

private void panel1_Resize(object sender, EventArgs e)
{
 if (panel1.Width < 200) panel1.Width = 200;
}

private void panel2_Resize(object sender, EventArgs e)
{
 if (panel2.Width < 300) panel1.Width = this.ClientSize.Width - 300 - splitter1.Width;
}

フォームを大きくして、panel1の幅をSplitter1を使って広げた後、
フォームの右端をドラッグしたままフォームの幅を狭くすると
パネルの表示が壊れたり、Splitter1が消えたりします。
壊れないようにするにはどうすればよいのでしょうか?
返信 編集キー/


管理者用

- Child Tree -