DotNetBar中ComboTree显示整条路径信息

背景:
ComboTree是个可以显示树状下拉菜单的ComboBox控件,弹出菜单如下所示:
Tree
     — node
     — node
点击节点node,默认显示结果为node,即仅仅是节点信息。
现在需求是要显示Tree node,即返回整条路径信息。

思路:
看上去很简单的样子,在选择事件中得到该节点的父路径信息,然后设置ComboTree的Text值即可。
嗯嗯!我擦!Text没用!!

换个思路:
更改显示节点,即SelectedNode的Text,这下行了。ComboBox显示成功,但问题是原来节点的信息也被更改了,导致树变得很难看。没办法,在弹出菜单出现时再改回去,弹出菜单出现时改回来吧!真是个丑陋的做法!

ComboTree

无代码无真相:

主要是用Tag来存储内部信息,没什么技术含量~ 

        //显示整个路径信息
        private void showFullText()
        {
            string strPaths = "";
            comboTreeDate.SelectedNode.FullPath.Split(';').ToList().ForEach(s => strPaths += s);
            Node thisNode = comboTreeDate.SelectedNode;
            //存储原值
            comboTreeDate.Tag = thisNode;
            thisNode.Tag = thisNode.Text;
            //更改text
            thisNode.Text = strPaths;
        }
        
        private void comboTreeDate_PopupShowing(object sender, EventArgs e)
        {
            //改回原值
            Node thisNode= comboTreeDate.Tag as Node;
            if (thisNode!=null)
                thisNode.Text = thisNode.Tag.ToString();
        }

        private void comboTreeDate_PopupClose(object sender, EventArgs e)
        {
            showFullText();
        }



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值