Ваша главная проблема в том, что Windows Forms TreeNode
не вытекает из Control
как TreeView
делает (или, например, Button
). Это гораздо ближе к классу «model», что означает, что в первую очередь это касается иерархической организации ваших данных. Хотя некоторые из абстрактных абстракций просачиваются в свойствах, таких как Color
, Bounds
, Handle
и аналогичных, TreeNode
не знает, как рисовать себя и как обрабатывать события щелчка.
С другой стороны, TreeView
является актуальной Control
, то есть вы можете извлечь из него и иметь возможность переопределить его защищенный OnClick
метод, как показано на example you linked.
Если вы хотите следовать этому пути, вы можете создать свой производный класс TreeView
и переопределить защищенный метод OnNodeMouseClick
. Этот метод специфичен для TreeView
и вызывается его методом WndProc
при щелчке по определенному узлу.
Но, прочитав ваши комментарии к другим ответам, кажется, что это не то, что вам действительно нужно сделать для достижения вашей цели.
Вам нужно установить 'SelectedNode' на узел, для которого вы хотите эмулировать клик. поэтому это должно быть что-то вроде этого: 'christmasTreeView.SelectedNode = nodeyouwanttoselect'. – Michael
Почему? Чего вы пытаетесь достичь? Вероятно, есть лучший способ ... – t3chb0t