【问题标题】:Trying to populate a combobox with parent-child dropdown list尝试使用父子下拉列表填充组合框
【发布时间】:2019-08-03 00:09:10
【问题描述】:

我正在创建一个填充父子列表的组合框。

我已经有 2 个单独的父子组合框。我想看到的是把这些放在一个组合框中,在其父列表下有子列表。当然孩子是缩进的,方便查看

这是我想要实现的示例图像。

另一方面,是否有任何其他可用的组合框组件可以执行这种类型的下拉列表。

感谢您对此的任何帮助。

更新: 忘了提到数据来自使用客户端数据集的 2 个表。意思是,我必须使用 2 个表之间的循环将 2 个表填充到一个组合框。

【问题讨论】:

    标签: delphi tcombobox


    【解决方案1】:

    标准 ComboBox 控件不支持您想要的多个级别。然而,通过简单地在“子”项前插入空格来实现这一点并不难,例如:

    ComboBox1.Items.Add('Dunning''s Pool Depot, Inc.');
    ComboBox1.Items.Add('  Big City Store #002');
    ComboBox1.Items.Add('  Littleton Store #445');
    ComboBox1.Items.Add('  ...');
    
    ComboBox1.Items.Add('Peacock Home Builders');
    ComboBox1.Items.Add('  Baxter Street');
    ComboBox1.Items.Add('  Elm Wood Drive');
    ComboBox1.Items.Add('  ...');
    

    给定任何项目的索引,您可以通过简单地查看它是否具有前导空格来确定它是“父”还是“子”。或者,您可以使用Items.Objects[] 属性来存储每个项目的上下文数据,例如类型(“父”或“子”)、父索引等。

    【讨论】:

    • 我忘了提到这些组合框来自使用客户端数据集的 2 个表。所以,我必须弄清楚在两张桌子之间寻找,对吧?
    • 要“获取”源 CDS,您可以使用 ComboBox1.Items.AddObject('Dunning''s Pool Depot, Inc.', CDS1) 等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多