ツリービューの親ノードに子ノードを追加しようとしています。私はノードのテキストに特定のキーloanresult.LoanName
でローン名を探しています。どちらも "TestOne"として表示されますが、子ノードは親ツリーノードに追加されていません。ツリービューノードテキストと指定されたキーが一致していますが一致しません
一致するものが見つからないため、一致するとエラーmatches[0].Nodes = 'matches[0].Nodes' threw an exception of type 'System.IndexOutOfRangeException'
がスローされます。
foreach (string st in activityList)
{
var activityResult = JsonConvert.DeserializeObject<Activity>(st);
if (loanResult.LoanName == activityResult.ParentLoanName)
{
TreeNode[] matches = tvTodoList.Nodes.Find(loanResult.LoanName, false);
if (matches.Length > 0) matches[0].Nodes.Add(activityResult.ActivityName);
}
}
テキスト
キー
私はここで何かを明らかに不足してしなければなりませんか?代わりに、単一のパラメータのコンストラクタを使用して
'Name'プロパティにキーを割り当てる必要があります。 'Text'プロパティはテキストを表示するためのもので、' Name'はキーとして使われるので、そのキーでノードを見つけることができます。また、子孫を含むすべてのノードで見つけたい場合は、2番目のパラメータとして 'true'を渡します:' var node = treeView1.Nodes.Find( "some key"、true).FirstOrDefault(); '次にif (node!= null) 'それから何かする。 * [この投稿](http://stackoverflow.com/a/34228733/3110834)の* Find by Name *の例を参照してください。 –