0

过程:在树视图控件中添加一个节点,节点文本 = textbox1.text

我想防止添加重复节点,也就是说,如果添加了带有文本“ABC”的节点,那么下一次,不应将带有文本“ABC”的节点添加到树视图控件中。

我尝试了以下方法,但无法达到预期的效果。方法一)

Dim list As New ArrayList
list.Add(TextBox1.Text) 
if list.Contains(Textbox1.Text) then
       MsgBox("Use different name")
else 
       .....code to add node with text
end if

方法 B)

if Treeview1.Nodes.Count > 0 then 
   For i = 0 to Treeview1.Nodes.Count
      if Treeview1.Nodes(i).Text=Textbox1.Text then
         MsgBox("Use different name")
      end if
   next
else 
   ........code to add node with text
end if 

我无法理解在这个论坛上为 C# 建议的解决方案。

任何帮助将不胜感激。

谢谢

4

2 回答 2

0
If ListView1.Items.Count > 0 Then
                For I = 0 To ListView1.Items.Count - 1
                    For Each LVL As ListViewItem In ListView1.Items
                        If ListView1.Items.Item(I).Index = LVL.Index Then
                            Continue For
                        Else
                            If ListView1.Items.Item(I).Text = LVL.Text Then 
                                LVL.Remove()
                            End If
                        End If
                    Next
                Next
           End If
于 2013-02-07T14:12:25.343 回答
0

方法A应该可以正常工作。您的代码中可能还有另一个错误(在 else 部分?)。list如果它位于重复调用的函数中,则应将其声明为静态,否则每次都会将其重置为新的(清除)。

方法 B 有几个错误:(1)for 语句应该是For i = 0 to Treeview1.Nodes.Count - 1(可能使用“for each”),并且else添加节点的代码应该在msgbox语句之后。此外,方法 B 仅搜索树视图的根节点。您需要遍历树来检查所有节点。

于 2013-01-17T05:02:45.150 回答