【发布时间】:2012-12-28 21:10:48
【问题描述】:
我有一个包含两种形式的应用程序。第一种形式用于以编程方式创建TreeView 节点,第二种形式具有实际的TreeView。当应用程序加载时,我在TreeView 中创建了两个根节点。
我的问题是当我为任一根节点创建我的第一个子节点时,它没有突出显示。我给了 Form 和 TreeView 焦点,还禁用了 TreeView 的 HideSelection 属性。
当我向任一根节点添加另一个子节点时,插入的节点就会突出显示。我希望每个插入的节点在插入后突出显示,但这仅在插入第一个节点后才有效。
示例代码:
m_ObjectAnimationForm.tr_vw_ANIMATION_OBJECT_LIST.SelectedNode = m_ObjectAnimationForm.tr_vw_ANIMATION_OBJECT_LIST.Nodes["OBJECTS_ROOT"].Nodes.Add(NewObject.ID, NewObject.ID);
我使用“KEY”对象的 ID 和节点的字符串创建一个新的树节点,然后该函数返回新创建的树节点,使其成为树中的选定节点。
在我调用该代码之后:
m_ObjectAnimationForm.tr_vw_ANIMATION_OBJECT_LIST.ExpandAll();
m_ObjectAnimationForm.tr_vw_ANIMATION_OBJECT_LIST.Focus();
【问题讨论】:
-
此代码运行时该表单是否可见?为什么它没有焦点?支持 Select() 而不是 Focus()。
-
我发现使用 Select() 可以解决问题。我必须调用表单的 Select(),然后调用树视图的 Select() 才能使其正常工作。谢谢。