在winform中,当我用DevExpress的TreeList控件中显示CheckBox时,如果我把某父结点下的所有子结点全部选中,则该父结点钩选。没有一个选中,则父结点不钩选,当部分选中时,该父结点钩选中,但此时成灰色状态。(或以其它方式来表示部分选中)。希望各位高手能能帮在下,解决一下。困扰我许久了!! 先谢过。

解决方案 »

  1.   

            /// <summary>
            /// 第三个选项卡!第一个treeview的复选框 缺料树结构
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void ItemOrderAbsentTreeView_AfterCheck(object sender, TreeViewEventArgs e)
            {
                //设置前面隐藏了的足料缺料按钮
                ItemOrderEnoughButton.Visible = true;
                ItemOrderAbsentButton.Visible = false;            if (e.Action == TreeViewAction.ByMouse)
                {
                    if (e.Node.Checked)
                    {
                        //取消节点选中状态之后,取消所有父节点的选中状态
                        setChildNodeCheckedState(e.Node, true);
                    }
                    else
                    {
                        //取消节点选中状态之后,取消所有父节点的选中状态
                        setChildNodeCheckedState(e.Node, false);
                        //如果节点存在父节点,取消父节点的选中状态
                        if (e.Node.Parent != null)
                        {
                            setParentNodeCheckedState(e.Node, false);
                        }
                    }
                }
            }
    这是我曾经用过的代码,你可以参考以下
      

  2.   

    devexpress确实有示例代码,但是部分选中后,父结点的状态与没有被钩选的状态一样。
    CheckState.Indeterminate 这样是不确定状态。它的说是一般成控件成灰色状态。
      

  3.   

    怎样设置 DevExpress的TreeList控件中显示CheckBox呀,我没找到。
      

  4.   

    winform中treelist其中有一列是checkbox请问怎么把里面的数据保存到数据库。本人菜鸟,求高手解答。