次の方法で共有


Splitter クラス

ユーザーがドッキングされたコントロールのサイズを変更するための分割コントロールを表します。

この型のすべてのメンバの一覧については、Splitter メンバ を参照してください。

System.Object
   System.MarshalByRefObject
      System.ComponentModel.Component
         System.Windows.Forms.Control
            System.Windows.Forms.Splitter

Public Class Splitter
   Inherits Control
   Implements IMessageFilter
[C#]
public class Splitter : Control, IMessageFilter
[C++]
public __gc class Splitter : public Control, IMessageFilter
[JScript]
public class Splitter extends Control implements IMessageFilter

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

Splitter コントロールを使用すると、実行時に Splitter コントロールの端にドッキングされているコントロールのサイズを変更できます。ユーザーが Splitter コントロール上にマウス ポインタを通過させると、 Splitter コントロールにドッキングされているコントロールのサイズが変更できることを示すためにカーソルが変化します。 Splitter コントロールを使用すると、ユーザーは、ドッキング順序において直前にドッキングされたコントロールのサイズを変更できます。したがって、ユーザーがドッキングされたコントロールのサイズを変更できるようにするには、ユーザーによるサイズ変更を可能にするコントロールをコンテナの端にドッキングしてから、分割コントロールをそのコンテナの同じ側にドッキングします。たとえば、Windows エクスプローラに類似したウィンドウを作成するには、 TreeView コントロールをフォームに追加し、その Dock プロパティを DockStyle.Left に設定します。 Splitter コントロールをフォームに追加し、その Dock プロパティを同様に DockStyle.Left に設定します。フォーム レイアウトを完成するには、 ListView コントロールを追加し、その Dock プロパティを DockStyle.Fill に設定して、 ListView にフォーム上の残りの空間を占有させます。実行時に、 Splitter コントロールを移動することによって、ユーザーは TreeView コントロールの幅を (同様に ListView コントロールの幅も) 変更できます。

ドッキングされたコントロールのサイズが、 Splitter コントロールによってユーザーが使用できないほど小さくならないようにするには、 MinExtra プロパティおよび MinSize プロパティを使用します。 MinExtra プロパティおよび MinSize プロパティは、左右に (水平方向の Splitter コントロールの場合は上下に) ドッキングされるコントロールの最小の有効サイズを決定します。 Splitter コントロールがドッキングされている、フォーム上のその他のコントロールが特定のスタイルの境界線を表示する場合は、 BorderStyle プロパティを使用して、分割コントロールにドッキングされたコントロールの境界線スタイルを一致させることができます。

Splitter コントロールのドッキング先のコントロールに、サイズ上限を設定する必要があります。 SplitterMoved イベントおよび SplitterMoving イベントを使用すると、ユーザーがどのような場合にドッキングされたコントロールのサイズを変更するのかを確認できます。 SplitterMoved イベントまたは SplitterMoving イベントのイベント ハンドラで SplitPosition プロパティを使用して、 Splitter コントロールがドッキングされているコントロールのサイズを決定し、 SplitPosition プロパティを異なる値に設定して、ドッキングされたコントロールの幅を指定した最大幅 (または水平方向に配置された Splitter コントロールの場合は高さ) に制限できます。

メモ    Splitter コントロールを使用しているコントロールのサイズ変更は、マウスを使用する場合に限り実行できます。キーボードを使用して Splitter コントロールにはアクセスできません。

使用例

[Visual Basic, C#, C++] Splitter コントロールを TreeView コントロールおよび ListView コントロールと組み合わせて使用し、Windows エクスプローラに類似したウィンドウを作成する例を次に示します。 TreeView コントロールおよび ListView コントロールを識別するには、ノードと項目を両方のコントロールに追加します。この例では、 SplitterMinExtra プロパティおよび MinSize プロパティを使用して、 TreeView コントロールまたは ListView コントロールが小さすぎるサイズや大きすぎるサイズに変更されないようにしています。このコード例は、この例で作成されたメソッドが Form 内で定義され、その Form のコンストラクタから呼び出されることを前提にしています。

 
Private Sub CreateMySplitControls()
   ' Create TreeView, ListView, and Splitter controls.
   Dim treeView1 As New TreeView()
   Dim listView1 As New ListView()
   Dim splitter1 As New Splitter()
   
   ' Set the TreeView control to dock to the left side of the form.
   treeView1.Dock = DockStyle.Left
   ' Set the Splitter to dock to the left side of the TreeView control.
   splitter1.Dock = DockStyle.Left
   ' Set the minimum size the ListView control can be sized to.
      splitter1.MinExtra = 100
   ' Set the minimum size the TreeView control can be sized to.
      splitter1.MinSize = 75
   ' Set the ListView control to fill the remaining space on the form.
      listView1.Dock = DockStyle.Fill

      ' Add a TreeView and a ListView item to identify the controls on the form.
      treeView1.Nodes.Add("TreeView Node")
      listView1.Items.Add("ListView Item")
   
   ' Add the controls in reverse order to the form to ensure proper location.
   Me.Controls.AddRange(New Control() {listView1, splitter1, treeView1})
End Sub 'CreateMySplitControls


[C#] 
private void CreateMySplitControls()
{
    // Create TreeView, ListView, and Splitter controls.
    TreeView treeView1 = new TreeView();
    ListView listView1 = new ListView();
    Splitter splitter1 = new Splitter();

    // Set the TreeView control to dock to the left side of the form.
    treeView1.Dock = DockStyle.Left;
    // Set the Splitter to dock to the left side of the TreeView control.
    splitter1.Dock = DockStyle.Left;
    // Set the minimum size the ListView control can be sized to.
    splitter1.MinExtra = 100;
    // Set the minimum size the TreeView control can be sized to.
    splitter1.MinSize = 75;
    // Set the ListView control to fill the remaining space on the form.
    listView1.Dock = DockStyle.Fill;
    // Add a TreeView and a ListView item to identify the controls on the form.
    treeView1.Nodes.Add("TreeView Node");
    listView1.Items.Add("ListView Item");

    // Add the controls in reverse order to the form to ensure proper location.
    this.Controls.AddRange(new Control[]{listView1, splitter1, treeView1});
}

[C++] 
private:
    void CreateMySplitControls()
    {
        // Create TreeView, ListView, and Splitter controls.
        TreeView* treeView1 = new TreeView();
        ListView* listView1 = new ListView();
        Splitter* splitter1 = new Splitter();

        // Set the TreeView control to dock to the left side of the form.
        treeView1->Dock = DockStyle::Left;
        // Set the Splitter to dock to the left side of the TreeView control.
        splitter1->Dock = DockStyle::Left;
        // Set the minimum size the ListView control can be sized to.
        splitter1->MinExtra = 100;
        // Set the minimum size the TreeView control can be sized to.
        splitter1->MinSize = 75;
        // Set the ListView control to fill the remaining space on the form.
        listView1->Dock = DockStyle::Fill;
        // Add a TreeView and a ListView item to identify the controls on the form.
        treeView1->Nodes->Add(S"TreeView Node");
        listView1->Items->Add(S"ListView Item");

        // Add the controls in reverse order to the form to ensure proper location.

        Control* temp0 [] = {listView1, splitter1, treeView1};
        this->Controls->AddRange(temp0);
    }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Windows.Forms

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Windows.Forms (System.Windows.Forms.dll 内)

参照

Splitter メンバ | System.Windows.Forms 名前空間 | TreeView | ListView