У меня есть простой TreeView (несколько родителей и один уровень детей каждый) в C # 2008 (.Net 3.5) в Vista.
В процедуре AFterCheck я пытаюсь установить / отменить свойство Checked дочерних узлов на основе состояния родительского элемента, когда он щелкается мышью.
Используя MessageBoxes, я вижу введенную подпрограмму события и цикл через дочерние узлы, и если родитель проверен, код
childnode.Checked = parentNode.Checked;
показывает через MessageBox.Show (childnode.Checked + "" + parentNode.Checked); после выполнения кода отображается «False True», а дочерний флажок остается не отмеченным в TreeView.
Я пробовал несколько вариантов, найденных в сети, с одинаковым результатом. Я даже пытался заменить TreeView (MWControls) с точно такими же результатами.
Интересно, что любое другое свойство childnode (скажем, BackColor), которое я установил, вступает в силу.
Я считаю, что рекурсия не является проблемой и, кажется, проверяется отладочными MessageBoxes.
Есть идеи?
С уважением,
Jim
Это приложение winform.
Я удалил все вызовы MessageBox без изменений; дочерние узлы все еще не проверены в ответ на проверяемый родительский узел.
Я удалил свою подпрограмму AfterCheck и использовал ту, на которую ссылается verbatum с теми же результатами; дочерние узлы не проверены в ответ на проверку родительского элемента.
Я играл с этим часами без удачи.
Странно, что любое другое свойство, которое я изменяю (например, BackColor), вступает в силу.
Я видел неясную ссылку в Интернете на эту проблему в Win7, но я не могу найти ее снова. В любом случае, я использую Vista, .Net 3.5 и C # Express 2008.
Спасибо за ввод.
С уважением,
Jim