与えられた文字列を持つすべての既存ノードを検索できるようにするWinFormツリービュー(プロパティ名は "tvwAcct" txtName.Text ")、既に存在する場合は、重複エントリを停止するためのメッセージボックス警告をユーザーに与えます。すべての親ノードと子ノードを検索できる必要があります。次のように私の現在のツリー構造は、次のとおりです。すべてのノード(子ノードを含む)を検索する方法
銀行口座名
- >サブアカウント名1
- >サブアカウント名2
- >サブアカウント名3
私はMSDN.Microsoftを見てきたと見ることができるNodes.Findメトdが存在する。
はここに私のコードです:タイプのTreeNode()の
値が 'ブール' に変換することはできません。このコードの
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
、私が言うエラーメッセージが表示されます。
ノードのテキスト値を取得し、これらを配列リストに入れ、代わりに配列リストを照会するなど、これがうまくいかない場合は、別の方法でこれを行うことができます。しかし、私はこれを行う方法を知るのに十分な経験はありません。
誰かが間違っていたことを知っていますか?または、より良いソリューションを提供できますか?
ありがとうございます!私は今、大きなエラーメッセージを何も与えられていない。しかし、テスト中に「完了」ボタンをクリックすると、この修正にもかかわらず、重複したノードが追加されてツリービューに保存されます。私の論理は正しいですか? – greenTree
@Pepsi_Maxコードを十分に表示できませんでした。ノードがTreeViewに追加されないようにする必要があります。 – LarsTech