将comboBox设置为自定义显示格式

der*_*can 2 c# combobox properties winforms

我有一个WinForms comboBox,其中包含“区域”列表(我已设置的自定义类)。每个Region都有属性NameAbbreviation等等。我知道我可以将comboBox设置为comboBox.DisplayMember = "Name";,但是我希望显示格式为"(" + Abbreviation + ") " + Name(例如(OR) Oregon)。

我知道我可以为此创建一个单独的属性(例如DisplayName),然后设置,comboBox.DisplayMember = "DisplayName";但是还有另一种方法吗?诸如此类的comboBox.DisplayMember = "(" + Abbreviation + ") " + Name;东西?

Ber*_*kay 6

您可以使用组合框的Format事件。

 private void comboBox1_Format(object sender, ListControlConvertEventArgs e)
    {
        string Name = ((yourClass)e.ListItem).Property1;
        string LastName = ((yourClass)e.ListItem).Property2;
        e.Value = Name + " " + LastName;
    }
Run Code Online (Sandbox Code Playgroud)

希望有帮助,


Ste*_*nio 5

这已经很老了,但我很难找到为什么Format没有触发事件。

您还需要设置ComboBox.FormattingEnabledtrue以调用和使用事件。