如何将项目作为树列表添加到 ComboBox

How to add items to ComboBox as tree list

我有问题:我想在 ComboBox 中显示已分类的项目。如图:

我的 table 有两个属性,一个是 vendorID ,另一个是 vendorType 。我想在 ComboBox

中显示这些供应商类型

我应该怎么做?

虽然我无法访问保管箱,因为公司 PC 阻止了哈哈。如果我理解正确的话,那么有一种简单的方法可以安排物品。最简单的方法是为它们分配编号 (ID) 或优先级字段,或者按照您希望的方式在数据库中排列它们并从中提取。确保未设置列表框上的所有自动排序。

ComboBox 项目包含对象,非常愚蠢。

你应该做的第一件事是创建一个 class,可能像这样:

class ComboItem
{
    public string Text { get; set; }
    public int Level { get; set; }
    public ComboItem (string text, int level)
    {  Text = text; Level = level;       }
    public override string ToString()
    {
        return "".PadLeft(Level) + Text;
    }
}

添加它们时,不要简单地添加字符串,而是添加新 class:

的实例
for (int i = 0; i< 12; i++)
{
    comboBox1.Items.Add(new ComboItem("Item" + i, i%3));
}

就是这样;诀窍是在 ToString 覆盖中添加几个空格。

您当然会改为从数据库中提取文本。并由您提供每个条目的级别!!

结果如下,Consolas 作为 Font:

如果你想使用自绘来获得更精致的外观,那也不是很难。但首先要做的是:获取关卡数据和文本。

如果你能从 SQL 中提取它们,那可能是最好的。否则你将不得不循环你的数据来做一点grouping/counting..