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

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

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

Re[2]: Panel で画面を3分割する


(過去ログ 171 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■98499 / inTopicNo.1)  Panel で画面を3分割する
  
□投稿者/ 星は昴 (28回)-(2021/11/24(Wed) 22:10:57)

分類:[C#] 

 デザイナーにある SplitContainer では画面の2分割しかできないようなので、
  Panel を3個(LeftPanel, UnderPanel, OverPanel)
  Splitter を2個(splitter1, splitter2)  ※なぜかデザイナーに存在しない
  PictureBox を2個(PbIn, PbOut)
用意して
  左は Panel、右は上下分割されたエリアに2つのPictureBox
という3分割画面を期待して、以下のようにコーディングしたのですがコンパイルしても何も表れません。
 どこがおかしいのでしょうか?

private void Form1_Load(object sender, EventArgs e)
{
  Panel LeftPanel = new Panel();
  Panel OverPanel = new Panel();
  Panel UnderPanel = new Panel();
  Splitter splitter1 = new Splitter();
  Splitter splitter2 = new Splitter();
  PictureBox PbIn = new PictureBox();
  PictureBox PbOut = new PictureBox();
  PbIn.Parent = OverPanel;
  PbOut.Parent = UnderPanel;

  LeftPanel.Dock = DockStyle.Left;
  splitter1.Dock = DockStyle.Left;
  OverPanel.Dock = DockStyle.Top;
  splitter2.Dock = DockStyle.Top;
  UnderPanel.Dock = DockStyle.Fill;
  PbIn.Dock = DockStyle.Fill;
  PbOut.Dock = DockStyle.Fill;

  this.Controls.Add(PbOut);    //Zオーダーがおかしいのか?
  this.Controls.Add(UnderPanel);
  this.Controls.Add(splitter2);
  this.Controls.Add(PbIn);
  this.Controls.Add(OverPanel);
  this.Controls.Add(splitter1);
  this.Controls.Add(LeftPanel);
}

引用返信 編集キー/
■98500 / inTopicNo.2)  Re[1]: Panel で画面を3分割する
□投稿者/ Azulean (1210回)-(2021/11/24(Wed) 22:25:34)
本筋ではありません。

No98499 (星は昴 さん) に返信
>  デザイナーにある SplitContainer では画面の2分割しかできないようなので、
>   Panel を3個(LeftPanel, UnderPanel, OverPanel)
>   Splitter を2個(splitter1, splitter2)  ※なぜかデザイナーに存在しない

Splitter は古い実装で、SplitContainer 登場とともに deprecated = 非推奨扱いです。
このため、新規に置かないよう、ツールボックスに表示されていません。

https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.splitter?view=netframework-4.8
「Splitter は SplitContainer によって置き換えられており、以前のバージョンと互換性を維持するためだけに残されています。」


個人的には SplitContainer を 2 個置けば良いのでは?と思います。
一方の SplitContainer の中に、他方の SplitContainer を置けば、事実上 3 分割ですので…。
引用返信 編集キー/
■98502 / inTopicNo.3)  Re[2]: Panel で画面を3分割する
□投稿者/ 星は昴 (29回)-(2021/11/24(Wed) 22:41:00)
No98500 (Azulean さん) に返信
> https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.splitter?view=netframework-4.8
> 「Splitter は SplitContainer によって置き換えられており、以前のバージョンと互換性を維持するためだけに残されています。」

>
> 個人的には SplitContainer を 2 個置けば良いのでは?と思います。
> 一方の SplitContainer の中に、他方の SplitContainer を置けば、事実上 3 分割ですので…。

 すばやい回答ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -