在C# winform treeview 遍历 checkBox 状态
privatevoidtreeView1_AfterCheck_1(objectsender,TreeViewEventArgse) &...
private void treeView1_AfterCheck_1(object sender, TreeViewEventArgs e) { if (e.Node.Checked == true) { foreach (TreeNode node in e.Node.Nodes) { if (node.Checked == false) node.Checked = true; } } if (e.Node.Checked == false) { foreach (TreeNode node_1 in e.Node.Nodes) { node_1.Checked = false; //MessageBox.Show("tow"); } } } }}在C# winform treeview 遍历 checkBox 状态,为什么鼠标点击快了,会出现有的全选不起,有没有其他的办法能解决呢????可不可以点击一次后就禁用CheckBox 的属性的选中,直到程序执行完再启车checkBox属性的选中状态??具体方法是什么,请指教
展开
3个回答
展开全部
/// <summary>
/// 设置树的子节点复选框状态
/// </summary>
/// <param name="node">选中节点</param>
/// <param name="check">复选框节点</param>
private void SetCheckedChildNodes(TreeListNode node, CheckState check)
{
for (int i = 0; i < node.Nodes.Count; i++)
{
node.Nodes[i].CheckState = check;
SetCheckedChildNodes(node.Nodes[i], check);
}
}
在你的实践中 调用一下这个递归方法,可能需要你修改一下,应该可以实现的。
/// 设置树的子节点复选框状态
/// </summary>
/// <param name="node">选中节点</param>
/// <param name="check">复选框节点</param>
private void SetCheckedChildNodes(TreeListNode node, CheckState check)
{
for (int i = 0; i < node.Nodes.Count; i++)
{
node.Nodes[i].CheckState = check;
SetCheckedChildNodes(node.Nodes[i], check);
}
}
在你的实践中 调用一下这个递归方法,可能需要你修改一下,应该可以实现的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
点击后会执行Post操作,所以不宜太快,可以在选中事件中,把对应的ListItem对象Enable属性设为false,禁止再次点击
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询