TreeNode クラス

定義

TreeView のノードを表します。

public ref class TreeNode : MarshalByRefObject, ICloneable, System::Runtime::Serialization::ISerializable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.TreeNodeConverter))]
[System.Serializable]
public class TreeNode : MarshalByRefObject, ICloneable, System.Runtime.Serialization.ISerializable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.TreeNodeConverter))>]
[<System.Serializable>]
type TreeNode = class
    inherit MarshalByRefObject
    interface ICloneable
    interface ISerializable
Public Class TreeNode
Inherits MarshalByRefObject
Implements ICloneable, ISerializable
継承
派生
属性
実装

次のコード例では、コントロールに顧客情報を TreeView 表示します。 ルート ツリー ノードには顧客名が表示され、子ツリー ノードには各顧客に割り当てられた注文番号が表示されます。 この例では、1,000 人の顧客がそれぞれ 15 件の注文と共に表示されます。 メソッドと EndUpdate メソッドを使用BeginUpdateすると、 TreeView の再描画が抑制され、 がオブジェクトを作成して描画している間にTreeView待機CursorTreeNode表示されます。 この例では、オブジェクトのOrderコレクションをCustomer保持できる オブジェクトが必要です。 また、 でコントロールFormのインスタンスをTreeView作成している必要もあります。

// The basic Customer class.
ref class Customer: public System::Object
{
private:
   String^ custName;

protected:
   ArrayList^ custOrders;

public:
   Customer( String^ customername )
   {
      custName = "";
      custOrders = gcnew ArrayList;
      this->custName = customername;
   }


   property String^ CustomerName 
   {
      String^ get()
      {
         return this->custName;
      }

      void set( String^ value )
      {
         this->custName = value;
      }

   }

   property ArrayList^ CustomerOrders 
   {
      ArrayList^ get()
      {
         return this->custOrders;
      }

   }

};


// End Customer class
// The basic customer Order class.
ref class Order: public System::Object
{
private:
   String^ ordID;

public:
   Order( String^ orderid )
   {
      ordID = "";
      this->ordID = orderid;
   }


   property String^ OrderID 
   {
      String^ get()
      {
         return this->ordID;
      }

      void set( String^ value )
      {
         this->ordID = value;
      }

   }

};
// End Order class



void FillMyTreeView()
{
   // Add customers to the ArrayList of Customer objects.
   for ( int x = 0; x < 1000; x++ )
   {
      customerArray->Add( gcnew Customer( "Customer " + x ) );
   }
   
   // Add orders to each Customer object in the ArrayList.
   IEnumerator^ myEnum = customerArray->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Customer^ customer1 = safe_cast<Customer^>(myEnum->Current);
      for ( int y = 0; y < 15; y++ )
      {
         customer1->CustomerOrders->Add( gcnew Order( "Order " + y ) );
      }
   }

   // Display a wait cursor while the TreeNodes are being created.
   ::Cursor::Current = gcnew System::Windows::Forms::Cursor( "MyWait.cur" );
   
   // Suppress repainting the TreeView until all the objects have been created.
   treeView1->BeginUpdate();
   
   // Clear the TreeView each time the method is called.
   treeView1->Nodes->Clear();
   
   // Add a root TreeNode for each Customer object in the ArrayList.
   myEnum = customerArray->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Customer^ customer2 = safe_cast<Customer^>(myEnum->Current);
      treeView1->Nodes->Add( gcnew TreeNode( customer2->CustomerName ) );
      
      // Add a child treenode for each Order object in the current Customer object.
      IEnumerator^ myEnum = customer2->CustomerOrders->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         Order^ order1 = safe_cast<Order^>(myEnum->Current);
         treeView1->Nodes[ customerArray->IndexOf( customer2 ) ]->Nodes->Add( gcnew TreeNode( customer2->CustomerName + "." + order1->OrderID ) );
      }
   }
   
   // Reset the cursor to the default for all controls.
   ::Cursor::Current = Cursors::Default;
   
   // Begin repainting the TreeView.
   treeView1->EndUpdate();
}

// The basic Customer class.
public class Customer : System.Object
{
   private string custName = "";
   protected ArrayList custOrders = new ArrayList();

   public Customer(string customername)
   {
      this.custName = customername;
   }

   public string CustomerName
   {      
      get{return this.custName;}
      set{this.custName = value;}
   }

   public ArrayList CustomerOrders 
   {
      get{return this.custOrders;}
   }
} // End Customer class 

// The basic customer Order class.
public class Order : System.Object
{
   private string ordID = "";

   public Order(string orderid)
   {
      this.ordID = orderid;
   }

   public string OrderID
   {      
      get{return this.ordID;}
      set{this.ordID = value;}
   }
} // End Order class

// Create a new ArrayList to hold the Customer objects.
private ArrayList customerArray = new ArrayList(); 

private void FillMyTreeView()
{
   // Add customers to the ArrayList of Customer objects.
   for(int x=0; x<1000; x++)
   {
      customerArray.Add(new Customer("Customer" + x.ToString()));
   }

   // Add orders to each Customer object in the ArrayList.
   foreach(Customer customer1 in customerArray)
   {
      for(int y=0; y<15; y++)
      {
         customer1.CustomerOrders.Add(new Order("Order" + y.ToString()));    
      }
   }

   // Display a wait cursor while the TreeNodes are being created.
   Cursor.Current = new Cursor("MyWait.cur");
        
   // Suppress repainting the TreeView until all the objects have been created.
   treeView1.BeginUpdate();

   // Clear the TreeView each time the method is called.
   treeView1.Nodes.Clear();

   // Add a root TreeNode for each Customer object in the ArrayList.
   foreach(Customer customer2 in customerArray)
   {
      treeView1.Nodes.Add(new TreeNode(customer2.CustomerName));
          
      // Add a child treenode for each Order object in the current Customer object.
      foreach(Order order1 in customer2.CustomerOrders)
      {
         treeView1.Nodes[customerArray.IndexOf(customer2)].Nodes.Add(
           new TreeNode(customer2.CustomerName + "." + order1.OrderID));
      }
   }

   // Reset the cursor to the default for all controls.
   Cursor.Current = Cursors.Default;

   // Begin repainting the TreeView.
   treeView1.EndUpdate();
}
Public Class Customer
   Inherits [Object]
   Private custName As String = ""
   Friend custOrders As New ArrayList()

   Public Sub New(ByVal customername As String)
      Me.custName = customername
   End Sub

   Public Property CustomerName() As String
      Get
         Return Me.custName
      End Get
      Set(ByVal Value As String)
         Me.custName = Value
      End Set
   End Property

   Public ReadOnly Property CustomerOrders() As ArrayList
      Get
         Return Me.custOrders
      End Get
   End Property
End Class


Public Class Order
   Inherits [Object]
   Private ordID As String

   Public Sub New(ByVal orderid As String)
      Me.ordID = orderid
   End Sub

   Public Property OrderID() As String
      Get
         Return Me.ordID
      End Get
      Set(ByVal Value As String)
         Me.ordID = Value
      End Set
   End Property
End Class

' Create a new ArrayList to hold the Customer objects.
Private customerArray As New ArrayList()

Private Sub FillMyTreeView()
   ' Add customers to the ArrayList of Customer objects.
   Dim x As Integer
   For x = 0 To 999
      customerArray.Add(New Customer("Customer" + x.ToString()))
   Next x

   ' Add orders to each Customer object in the ArrayList.
   Dim customer1 As Customer
   For Each customer1 In customerArray
      Dim y As Integer
      For y = 0 To 14
         customer1.CustomerOrders.Add(New Order("Order" + y.ToString()))
      Next y
   Next customer1

   ' Display a wait cursor while the TreeNodes are being created.
   Cursor.Current = New Cursor("MyWait.cur")

   ' Suppress repainting the TreeView until all the objects have been created.
   treeView1.BeginUpdate()

   ' Clear the TreeView each time the method is called.
   treeView1.Nodes.Clear()

   ' Add a root TreeNode for each Customer object in the ArrayList.
   Dim customer2 As Customer
   For Each customer2 In customerArray
      treeView1.Nodes.Add(New TreeNode(customer2.CustomerName))

      ' Add a child TreeNode for each Order object in the current Customer object.
      Dim order1 As Order
      For Each order1 In customer2.CustomerOrders
         treeView1.Nodes(customerArray.IndexOf(customer2)).Nodes.Add( _
    New TreeNode(customer2.CustomerName + "." + order1.OrderID))
      Next order1
   Next customer2

   ' Reset the cursor to the default for all controls.
   Cursor.Current = System.Windows.Forms.Cursors.Default

   ' Begin repainting the TreeView.
   treeView1.EndUpdate()
End Sub

注釈

コレクションにはNodes、現在TreeNodeの に割り当てられているすべての子TreeNodeオブジェクトが保持されます。 を追加、削除、または複製 TreeNodeできます。これを行うと、すべての子ツリー ノードが追加、削除、または複製されます。 各 TreeNode オブジェクトには、他 TreeNode のオブジェクトのコレクションを含めることができます。 これにより、コレクションを反復処理するときに、 TreeView 内のどこにいるかを判断するのが困難になる可能性があります。 ツリー構造内の位置を確認するには、 プロパティを FullPath 使用します。 文字列は FullPath 、文字列値を PathSeparator 使用して解析して、ラベルの開始位置と終了位置を TreeNode 決定できます。

ラベルは TreeNode 、 プロパティを明示的に Text 設定することによって設定されます。 別の方法として、 プロパティを表す文字列パラメーターを TreeNode 持つコンストラクターのいずれかを使用してツリー ノードを Text 作成します。 ラベルが表示されている場合は、画像の TreeNode 横にラベルが表示されます。

ツリー ノードの横に画像を表示するには、親TreeViewコントロールの プロパティに をImageList割り当てImageList、 プロパティのインデックス値をImage参照して をImageList割り当てます。 がImageIndex選択されていない状態のときに表示TreeNodeする のImageインデックス値に プロパティを設定します。 同様に、 プロパティを SelectedImageIndex 、 が選択されたときに表示する の Image インデックス値に TreeNode 設定します。

特定のツリー ノードを選択し、コレクションをNodes反復処理するには、、、LastNodePrevNodeNextNodeNextVisibleNodePrevVisibleNodeの各プロパティ値FirstNodeを使用します。 TreeNode前述のプロパティの 1 つによって返された を プロパティにTreeView.SelectedNode割り当てて、コントロール内のツリー ノードをTreeView選択します。

ツリー ノードを展開して、次のレベルの子ツリー ノードを表示できます。 ユーザーは、 のTreeNode横にあるプラス (+) ボタンを押して を展開するか、 メソッドをTreeNode呼び出Expandして をTreeNode展開できます。 コレクション内のすべての子ツリー ノード レベルを Nodes 展開するには、 メソッドを ExpandAll 呼び出します。 メソッドを呼び出して子 TreeNode レベルを Collapse 折りたたむか、 の横にある TreeNodeマイナス (-) ボタンを押すことができます (表示されている場合)。 メソッドを Toggle 呼び出して、展開された状態と折りたたまれた状態の間で を交互 TreeNode に呼び出すこともできます。

ツリー ノードでは、必要に応じてチェック ボックスを表示できます。 チェック ボックスを表示するには、 の TreeView プロパティを CheckBoxestrue設定します。 プロパティは Checked 、チェック状態のツリー ノードに対して に true 設定されます。

コンストラクター

TreeNode()

TreeNode クラスの新しいインスタンスを初期化します。

TreeNode(SerializationInfo, StreamingContext)

シリアル化情報とコンテキストを指定して、TreeNode クラスの新しいインスタンスを初期化します。

TreeNode(String)

ラベル テキストを指定して、TreeNode クラスの新しいインスタンスを初期化します。

TreeNode(String, Int32, Int32)

ラベル テキストと、ツリー ノードが選択されているときと選択されていないときに表示するイメージをそれぞれ指定して、TreeNode クラスの新しいインスタンスを初期化します。

TreeNode(String, Int32, Int32, TreeNode[])

ラベル テキスト、子ツリー ノード、およびツリー ノードが選択されているときと選択されていないときに表示するイメージをそれぞれ指定して、TreeNode クラスの新しいインスタンスを初期化します。

TreeNode(String, TreeNode[])

指定したラベル テキストと子ツリー ノードを使用して、TreeNode クラスの新しいインスタンスを初期化します。

プロパティ

BackColor

ツリー ノードの背景色を取得または設定します。

Bounds

ツリー ノードの範囲を取得します。

Checked

ツリー ノードがチェックされているかどうかを示す値を取得または設定します。

ContextMenu

このツリー ノードに関連付けられているショートカット メニューを取得します。

ContextMenuStrip

このツリー ノードに関連付けられているショートカット メニューを取得または設定します。

FirstNode

ツリー ノード コレクション内の最初の子ツリー ノードを取得します。

ForeColor

ツリー ノードの前景色を取得または設定します。

FullPath

ルート ツリー ノードから現在のツリー ノードまでのパスを取得します。

Handle

ツリー ノードのハンドルを取得します。

ImageIndex

ツリー ノードが選択されていないときに表示されるイメージのイメージ リスト内のインデックス値を取得または設定します。

ImageKey

このツリー ノードが選択されていないときに、ノードに関連付けられるイメージのキーを取得または設定します。

Index

ツリー ノード コレクション内のツリー ノードの位置を取得します。

IsEditing

ツリー ノードを編集できるかどうかを示す値を取得します。

IsExpanded

ツリー ノードが展開されているかどうかを示す値を取得します。

IsSelected

ツリー ノードが選択されているかどうかを示す値を取得します。

IsVisible

ツリー ノードが表示されている、または部分的に表示されているかどうかを示す値を取得します。

LastNode

最後の子ツリー ノードを取得します。

Level

TreeView コントロールにおけるツリー ノードの深さを取得します。最初の深さは 0 です。

Name

ツリー ノードの名前を取得または設定します。

NextNode

次のレベルにある兄弟ツリー ノードを取得します。

NextVisibleNode

次のレベルにある、表示されているツリー ノードを取得します。

NodeFont

ツリー ノード ラベルのテキストを表示するために使用するフォントを取得または設定します。

Nodes

現在のツリー ノードに割り当てられている TreeNode オブジェクトのコレクションを取得します。

Parent

現在のツリー ノードの親ツリー ノードを取得します。

PrevNode

前のレベルにある兄弟ツリー ノードを取得します。

PrevVisibleNode

前のレベルにある、表示されているツリー ノードを取得します。

SelectedImageIndex

ツリー ノードが選択されているときに表示されるイメージのイメージ リスト内のインデックス値を取得または設定します。

SelectedImageKey

ツリー ノードが選択されている状態のときに表示されるイメージのキーを取得または設定します。

StateImageIndex

TreeNodeTreeView プロパティが false に設定されている場合に、CheckBoxes の状態を示すために使用されるイメージのインデックスを取得または設定します。

StateImageKey

TreeNodeTreeView プロパティが false に設定されている場合に、CheckBoxes の状態を示すために使用されるイメージのキーを取得または設定します。

Tag

ツリー ノードに関するデータを格納するオブジェクトを取得または設定します。

Text

ツリー ノードのラベルに表示されるテキストを取得または設定します。

ToolTipText

マウス ポインターを TreeNode に重ねたときに表示されるテキストを取得または設定します。

TreeView

ツリー ノードが割り当てられている親ツリー ビューを取得します。

メソッド

BeginEdit()

ツリー ノードのラベルの編集を開始します。

Clone()

ツリー ノードと、そのツリー ノードをルートとするサブツリー全体をコピーします。

Collapse()

ツリー ノードを折りたたみます。

Collapse(Boolean)

TreeNode を折りたたみます。オプションで、子ノードも折りたたみます。

CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。

(継承元 MarshalByRefObject)
Deserialize(SerializationInfo, StreamingContext)

指定された TreeNode から SerializationInfo の状態を読み込みます。

EndEdit(Boolean)

ツリー ノード ラベルの編集を終了します。

EnsureVisible()

ツリー ノードが確実に表示されるようにします。必要に応じてツリー ノードを展開し、ツリー ビュー コントロールをスクロールします。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Expand()

ツリー ノードを展開します。

ExpandAll()

すべての子ツリー ノードを展開します。

FromHandle(TreeView, IntPtr)

指定されたハンドルを持ち、指定されたツリー ビュー コントロールに割り当てられているツリー ノードを返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetLifetimeService()
古い.

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetNodeCount(Boolean)

子ツリー ノードの数を返します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
InitializeLifetimeService()
古い.

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
Remove()

ツリー ビュー コントロールから現在のツリー ノードを削除します。

Serialize(SerializationInfo, StreamingContext)

指定された TreeNode に、SerializationInfo の状態を保存します。

Toggle()

ツリー ノードの展開された状態と折りたたまれた状態を切り替えます。

ToString()

現在のオブジェクトを表す文字列を返します。

明示的なインターフェイスの実装

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

シリアル化情報オブジェクトを、TreeNode のシリアル化に必要なデータで事前設定します。

適用対象

こちらもご覧ください