在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属性的选中状态??具体方法是什么,请指教 展开
 我来答
apu510064
2011-06-23 · TA获得超过964个赞
知道小有建树答主
回答量:1634
采纳率:55%
帮助的人:927万
展开全部
用这段代码就可以了
foreach (TreeNode node in e.Node.Nodes)
{
node.Checked = e.Node.Checked;
}
如果鼠标点击太快,变成双击了,就会把节点展开或者收起,但不影响其选中状态
li_shengangel
2011-06-24 · TA获得超过140个赞
知道小有建树答主
回答量:280
采纳率:0%
帮助的人:148万
展开全部
/// <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);
}
}

在你的实践中 调用一下这个递归方法,可能需要你修改一下,应该可以实现的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pure2002
2011-06-23 · TA获得超过298个赞
知道答主
回答量:26
采纳率:0%
帮助的人:16.8万
展开全部
点击后会执行Post操作,所以不宜太快,可以在选中事件中,把对应的ListItem对象Enable属性设为false,禁止再次点击
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式