delphi 如何让Combobox下拉菜单时,显示一个树形结构

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 如何让Combobox下拉菜单时,显示一个树形结构相关的知识,希望对你有一定的参考价值。

如我数据库中的是系统管理-用户管理-新增,这是一个三层次关系

参考技术A 在点击ComboBox的时刻实际一个TTreeView,点其它的时刻封闭,本来做过,很简单的,只要设置TTreeView的Top,Left就可以了 参考技术B ComboboxEx组件能满足你的需求追问

我的是delphi 2007版 貌似没找到你说的这个 要自己下,然后安装的??

追答

win32下面倒数第二个 D7里

追问

这个控件找到了 不过没用过 请问可以代码一段吗

追答

方法同combobox类似只是多了一个Indent属性,设置0 1 2 3就可以分列出来了

追问

我表示没有这个属性

追答

var
item:TComboExItem;
begin

Item := cbb1.ItemsEx.Insert(0);
item.Indent:=0;
Item.Caption := '1';
Item := cbb1.ItemsEx.Insert(1);
item.Indent:=1;
Item.Caption := '2';
Item := cbb1.ItemsEx.Insert(2);
item.Indent:=2;
Item.Caption := '3';
Item := cbb1.ItemsEx.Insert(3);
item.Indent:=3;
Item.Caption := '4';
end;

本回答被提问者采纳
参考技术C 最简单的办法按层次加一些前导空格就可以了

datatable绑定comboBox,在下拉菜单中显示对应数据

    实现功能:  
         datatable绑定comboBox,在下拉菜单中显示对应数据  
    实现方法:  
         1、生成datatable,并为combox绑定数据源:  
                comboBox1.DataSource = dt1;  
                comboBox1.DisplayMember = "用户编码";  
                comboBox1.ValueMember = "ID";  
                this.comboBox1.SelectedIndex = -1;  
        2、在combox的SelectedIndexChanged事件中添加如下方法:  
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)  
            {  
                int iCurrentIndex = this.comboBox1.SelectedIndex;  
                if (iCurrentIndex < 0) return;  
                DataRow dr = dt1.Rows[iCurrentIndex];  
                iID = Int32.Parse(dr["ID"].ToString());  
            }  
    另:如果textBox也想绑定该数据源,实现连动(如输入编码显示对应名称)  
        3、在textBox的TextChanged事件中添加如下方法:  
            private void textBox1_TextChanged(object sender, EventArgs e)  
            {  
                string strUserNo = this.textBox1.Text.Trim();  
                for (int i = 0; i < dt1.Rows.Count; i++)  
                {  
                    if (dt1.Rows[i]["用户编码"].ToString() == strUserNo)  
                    {  
                        this.comboBox1.SelectedIndex = i;  
                        break;  
                    }  
                    else  
                    {  
                        this.comboBox1.SelectedIndex = -1;  
                    }  
                }  
            }  

 

以上是关于delphi 如何让Combobox下拉菜单时,显示一个树形结构的主要内容,如果未能解决你的问题,请参考以下文章

delphi中combobox一个用法

delphi如何向combobox的items里添加内容?

delphi如何向combobox的items里添加内容?

delphi的combobox的事件问题

delphi 如何分割文本

请教如何获取easyui-combobox下拉菜单的多个选中值