[Tips][TreeView] 選択されているノードを削除する

選択されているノードを削除するにはSelectedNodeプロパティRemoveメソッドを実行します。

削除しようとしてるノードに子がある場合は、子も一緒に削除されます。

下記は、選択されたノードを削除する例です。

[選択されているノードを削除]ボタンがクリックされると、現在選択されているノードがあるかどうかを確認し削除を行います。

VBの例

' フォームロード時の処理
Private Sub Form4_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    '親ノード
    Dim rootNode As New TreeNode("ルート")
    '子ノード
    Dim childNode1 As New TreeNode("子ノード1")
    Dim childNode2 As New TreeNode("子ノード2")
    '孫ノード
    Dim grandChildNode1 As New TreeNode("孫ノード1")
    Dim grandChildNode2 As New TreeNode("孫ノード2")
    Dim grandChildNode3 As New TreeNode("孫ノード3")

    '★★★親ノードをTreeViewに追加★★★
    TreeView1.Nodes.Add(rootNode)

    '★★★子ノードを親ノードに追加★★★
    rootNode.Nodes.Add(childNode1)
    rootNode.Nodes.Add(childNode2)

    '★★★孫ノードを子ノードに追加★★★
    childNode2.Nodes.Add(grandChildNode3)
    childNode1.Nodes.Add(grandChildNode1)
    childNode1.Nodes.Add(grandChildNode2)
End Sub

' [選択されているノードを削除]ボタンクリック時の処理
Private Sub btnCheckSelectedNode_Click(sender As System.Object, e As System.EventArgs) Handles btnCheckSelectedNode.Click
    Dim strMsg As String = "選択されたノードを削除します。" & vbCrLf & "よろしいですか?"

    If TreeView1.Nodes.Count > 0 Then
        If MessageBox.Show(strMsg, "削除確認",
                           MessageBoxButtons.YesNo,
                           MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
            '★★★選択されたノードを削除する★★★
            TreeView1.SelectedNode.Remove()
        End If
    End If
End Sub

C#の例

// フォームロード時の処理
private void Form4_Load(object sender, EventArgs e)
{
    //親ノード
    TreeNode rootNode = new TreeNode("ルート");
    //子ノード
    TreeNode childNode1 = new TreeNode("子ノード1");
    TreeNode childNode2 = new TreeNode("子ノード2");
    //孫ノード
    TreeNode grandChildNode1 = new TreeNode("孫ノード1");
    TreeNode grandChildNode2 = new TreeNode("孫ノード2");
    TreeNode grandChildNode3 = new TreeNode("孫ノード3");

    //★★★親ノードをTreeViewに追加★★★
    treeView1.Nodes.Add(rootNode);

    //★★★子ノードを親ノードに追加★★★
    rootNode.Nodes.Add(childNode1);
    rootNode.Nodes.Add(childNode2);

    //★★★孫ノードを子ノードに追加★★★
    childNode2.Nodes.Add(grandChildNode3);
    childNode1.Nodes.Add(grandChildNode1);
    childNode1.Nodes.Add(grandChildNode2);
}

// [選択されているノードを削除]ボタンクリック時の処
private void btnCheckSelectedNode_Click(object sender, EventArgs e)
{
    string strMsg = "選択されたノードを削除します。\nよろしいですか?";
    if ( MessageBox.Show(strMsg, "削除確認",
                       MessageBoxButtons.YesNo,
                       MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes )
    {
        // ★★★選択されたノードを削除する★★★
        treeView1.SelectedNode.Remove();
    }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です