我有一个WinForm树形视图(属性名为“tvwAcct”),我希望能够通过给定字符串搜索所有现有节点(“ txtName.Text“),并且如果它已经存在,给用户一个消息框警告以停止重复条目。它需要能够搜索所有父节点和子节点。我的当前树结构如下:如何搜索所有节点(包括子节点)
银行帐户名称
- >子账户名1
- >子账户名称2
- >子账户名称3
我已经看过MSDN.Microsoft并且可以看到Nodes.Find实现方法具d存在。
这里是我的代码:
Private Sub txtName_Validating(eventSender As Object, eventArgs As CancelEventArgs) Handles txtName.Validating
Dim Cancel As Boolean = eventArgs.Cancel
Dim b As Boolean = True
' [ other 'if' conditions here ]
ElseIf (tvwAcct.Nodes.Find(txtName.Text, b) Then
MyMsgBox("Sorry, this account name already exists. Please try again with a different name.", MsgBoxStyle.Information)
Cancel = True
有了这个代码,我得到它说的错误消息:类型树节点()的
值不能转换为“布尔”。
我将愿意这样做,如果这是行不通的,如获取节点文本值,然后把这些成一个数组列表和查询数组列表,而不是另一种方式。但我没有足够的经验知道如何做到这一点。
有没有人知道我哪里出错了?或者可以提供更好的解决方案?
感谢您的支持!我现在没有收到任何错误信息,这很棒。然而,在测试过程中,当我点击'完成'按钮时,重复的节点仍然被添加并保存到TreeView,尽管此修复。我的逻辑正确吗? – greenTree
@Pepsi_Max您没有显示足够的代码。您需要防止节点被添加到TreeView中。 – LarsTech