日期:2014-05-16  浏览次数:20957 次

还是关于dev的treelist问题。
我记得在哪里看过这样一个例子,
点击一个combo,就弹出一个treelist供用户选择,忘了是哪个例子了。
各位大佬有实现这个功能的,告诉我一下怎么做,
代码越简单越好。
------解决方案--------------------

你是指上面这种吗?
如果是上面这种效果,是用PopupContainerControl来作为下拉框的控件,如下绑定树控件到PopupContainerControl
fTreeContainer = new PopupContainerControl();
            this.Properties.PopupControl = fTreeContainer;

            //添加树
            fTree = new TreeList();
            fTreeContainer.Controls.Add(fTree);
            fTree.Dock = DockStyle.Fill;

            //设置树的属性
            TreeHelper.SetTreeListCommonProperty(fTree); //设置树的公共属性
            fTree.OptionsBehavior.Editable = false; //不允许编辑
            fTree.OptionsMenu.EnableColumnMenu = false; //禁用列菜单

            //设置主键列与父列
            fTree.KeyFieldName = fDataField.TreeKeyFieldName;
            fTree.ParentFieldName = fDataField.TreeParentFieldName;



通过QueryPopUp事件给处理树控件的DataSource数据源,
通过树的AfterExpand,MouseMove处理你要做的事情,
可能有些树的属性你要设置,比如

tree.Font = ResourceService.DefaultFont;
            tree.OptionsView.EnableAppearanceEvenRow = true;
            tree.OptionsView.EnableAppearanceOddRow = true;
            tree.OptionsBehavior.UseTabKey = true;

            tree.Appearance.OddRow.BackColor = Color.White;
            tree.Appearance.OddRow.Options.UseBackColor = true;
            tree.Appearance.EvenRow.BackColor = Color.Linen;
            tree.Appearance.EvenRow.Options.UseBackColor = true;

            tree.OptionsView.AutoWidth = false;

            tree.AfterExpand += new NodeEventHandler(tree_AfterExpand);
            tree.CustomDrawNodeCell += new CustomDrawNodeCellEventHandler(TreeList_CustomDrawNodeCell);

            
            tree.CustomDrawColumnHeader += new CustomDrawColumnHeaderEventHandler(tree_CustomDrawColumnHeader);

            TreeListRowNumberHelper.Do(tree);