1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

C# - SplitContainerのサンプル コードべた書き(Visual Studio不使用)

Last updated at Posted at 2020-10-17

意外とSplitContainerを使うサンプルソースがサクッと見つからなかったので、メモ代わりに置いておきます。

キャプチャ

image.png

ソースコード

SplitterDistanceは、親であるFormのコンストラクタ内で設定してもうまく反映されないようなのでLoadイベントにつっこんでみた。(そのうち調べる・・・かも・・・)


using System;
using System.Drawing;
using System.Windows.Forms;

class SampleForm : Form
{
    SplitContainer spl1;
    SplitContainer spl2;

    SampleForm()
    {
        ClientSize = new Size(500, 300);

        Controls.Add(spl1 = new SplitContainer(){
            Dock = DockStyle.Fill,
            Orientation = Orientation.Horizontal, // 横線で上下に分割
            // SplitterDistance = 250,                // 分割線の位置を指定[pixel] Horizontalの場合は上端からの位置
            BorderStyle = BorderStyle.FixedSingle,
            SplitterWidth = 2,
            FixedPanel = FixedPanel.Panel1, // spl1が属すコントロールがリサイズされたときに、Panel1側のサイズ(分割線)を保持(固定)する
        });

        spl1.Panel2.Controls.Add(spl2 = new SplitContainer(){
            Dock = DockStyle.Fill,
            Orientation = Orientation.Vertical, // 縦線で左右に分割
            // SplitterDistance = 100,// 分割線の位置を指定[pixel] Verticalの場合は左端からの位置
            BorderStyle = BorderStyle.Fixed3D,
            SplitterWidth = 2,
            IsSplitterFixed = true,
        });

        Load += (s,e)=>{
            spl1.SplitterDistance = 150; // 分割線の位置を指定[pixel] Horizontalの場合は上端からの位置
            spl2.SplitterDistance = 200; // 分割線の位置を指定[pixel] Verticalの場合は左端からの位置
        };


        spl1.Panel1.Controls.Add(new Button(){
            Text="Button on spl1.Panel1",
            Dock = DockStyle.Fill,
        });
        spl2.Panel1.Controls.Add(new Button(){
            Text="Button on spl2.Panel1",
            Dock = DockStyle.Fill,
        });
        spl2.Panel2.Controls.Add(new Button(){
            Text="Button on spl2.Panel2",
            Dock = DockStyle.Fill,
        });
    }
    
    [STAThread]
    static void Main(string[] args)
    {
        Application.Run(new SampleForm());
    }
}

参考サイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?