У меня есть TreeView с N номером родительских узлов, каждый из которых имеет равное количество дочерних узлов, например, следующий пример (City 1 , 2, ... являются родительскими узлами, а дочерние узлы - дом, гостиница, магазин, банк, школа);Как связать определенный родительский узел TreeView с конкретным файлом (vb.net/c#)
City1
- Дом
- Hotel
- Магазин
- Банк
- Школа
City2
- Дом
- Hotel
- Магазин
- Банк
- Школа
Город3
- Дом
- Hotel
- Магазин
- Банк
- Школа
Теперь, что я хотел бы сделать, это сделать некоторые операции, основываясь на следующих правилах:
если ребенок в возрасте до задается конкретный родительский узел, например City1), проверяется, также проверяется состояние родительского узла. Таким образом, я могу читать информацию о City1 из файла, скажем file_index_1. Поскольку file_index_1 находится, не имеет значения, проверен ли еще один дочерний узел из одного и того же родительского узла. Мне нужно только по крайней мере один дочерний узел проверяется, чтобы проверить родительский узел и использовать соответствующий файл
если City2 (или любой из его дочерних) проверяется, file_index_2 вызывается
если CityN (или любой из его дочерних), file_index_N вызывается
Если оба родительских узла отмечены флажком (поскольку для каждого родительского узла отмечен минимум один дочерний узел), то только родительский узел file_index_associated устанавливается в родительский узел, где проверяется дочерний узел.
если, например, City1 не проверен (поскольку ни один дочерний узел не проверен под ним), файл-index_1 не будет использоваться.
Если ни один дочерний узел не проверен под всеми родительскими узлами, файл не будет вызываться.
В случае AfterCheck, я могу получить индекс проверяемого родительского узла со следующим кодом:
Dim nodeIndex As Integer = 0
For k As Integer = 0 To NumberOfParentNodes
If e.Node.Text = "Specific Parentnode Name, eg. City1" Then
nodeIndex = e.Node.Index
'call a file with the same index as the parentnode index
'But How about if any childnode is checked even if the parentnode is not checked??
'And how to get the index of the parent node of a child being checked
End If
Next
Но есть трудности соотносить child.checked => parent.checked. Надеюсь, мои намерения понятны. Можете ли вы помочь, как это сделать?
спасибо. Когда я сниму один из дочерних узлов, родительский узел не проверяется, даже если есть еще другие дочерние узлы. У меня такое же решение и проблемы в событии mouseClick с If e.Node.Checked = True Затем e.Node.Parent.Checked = True. У меня все еще вопрос о том, как сохранить родительский узел до тех пор, пока все дочерние узлы не будут отмечены? Поскольку это поможет мне контролировать, я все еще находится под одним и тем же родительским узлом, пока не выйду из него », когда все дочерние узлы не отмечены) – codelearner
Я обновил код, чтобы отразить сценарий« любой проверенный ». –