WinFormsのSplitContainerのCollapsedについて

コンピュータ
SplitCntainerのCollapsedの動作確認をしてみました。

Collapsedの初期値

Panel1Collapsed:False
Panel2Collapsed:False

何れのPanelもfalseになっていました。
それを踏まえて左右のパネルをクリックすることでtruefalseを切り替えるサンプルプログラムを作ってみました。

ソースコード

using System.Diagnostics;

namespace SplitCotainerSpan;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        var fnt = new Font("MS GOTHIC", 32);

        var sc = new SplitContainer
        {
            Dock = DockStyle.Fill,
        };

        this.Load += (s, e) =>
        {
            this.Controls.Add(sc);
            // Panel1Collapsedの初期値確認
            Debug.Print($"Panel1Collapsed:{sc.Panel1Collapsed}");
            Debug.Print($"Panel2Collapsed:{sc.Panel2Collapsed}");
        };
        sc.Panel1.Paint += (s, e) =>
        {
            e.Graphics.DrawString(
                "Panel1", fnt, Brushes.Black, 12.0f, 96.0f);
        };
        sc.Panel2.Paint += (s, e) =>
        {
            e.Graphics.DrawString(
                "Panel2", fnt, Brushes.Black, 12.0f, 96.0f);
        };
        sc.Panel1.MouseDown += (s, e) =>
        {
            if (e.Button == MouseButtons.Right)
            {
                sc.Panel1Collapsed = false;
                sc.Panel2Collapsed = false;
            }
            else if (e.Button == MouseButtons.Left)
            {
                sc.Panel1Collapsed = true;
                sc.Panel2Collapsed = false;
            }

        };
        sc.Panel2.MouseDown += (s, e) =>
        {
            if (e.Button == MouseButtons.Right)
            {
                sc.Panel1Collapsed = false;
                sc.Panel2Collapsed = false;
            }
            else if (e.Button == MouseButtons.Left)
            {
                sc.Panel1Collapsed = false;
                sc.Panel2Collapsed = true;
            }
        };
    }
}

実行

起動した状態

Panel1を左クリック

Pnael2を左クリック

Panel1またはPanel2で右クリック

試したところ片方のPanelのみが表示されるような感じになります。Panelどうしを仕切る移動できる境界も表示されていないようです。

コメント