【发布时间】:2011-12-02 11:11:04
【问题描述】:
我遇到了来自 TreeView 控件的奇怪行为。
如您所见,树视图中的最后一个节点以某种方式隐藏(尽管我可以使用键盘上/下箭头键选择它)并且滚动条不会扩展到它。在图片中,您看到的蓝线是隐藏的选定节点,但幸运的是仍然可以看到一些突出显示!
即使我按下 pagedown 或 END 键,我也无法选择最后一个节点!
我尝试更改树视图控件的高度以匹配节点的高度,但仍然没有成功!我的树视图位于“面板”内。这可能是问题吗?
更新 我没有做一些非凡的事情。我只是在 List 上填充一个循环(在循环之前和之后使用暂停和恢复),然后将正常填充树视图。
public class MyNode
{
public string Name {get;set;}
public string Result {get;set;}
}
//suspending code here (dont have access to paste it here)
foreach(MyNode node in myNodeList)
{
TreeNode tn = new TreeNode();
tn.Text = node.Name;
tn.Name = node.Result;
treeView.Nodes.Add(tn);
}
////unsuspending code here (dont have access to paste it here)
稍后我允许用户按下按钮以突出显示结果设置为“失败”的节点:
foreach(TreeNode node in treeView.Nodes)
{
if (node.Name.ToString() == "fail") node.BackColor = Color.Red;
}
在此之后,树视图中的最后一个节点将被隐藏!!!
修复 我使用了 BeginUpdate() 和 EndUpdate() 方法,问题就解决了!!!
【问题讨论】:
-
你能展示设计器文件代码如何初始化控件吗?至少我们可以重现这种行为并检查问题所在。
-
@Reniuz 请检查更新的问题!
-
最好将您的解决方案发布为已接受的答案,而不是在问题中。
标签: c# winforms treeview controls scrollbar