Combobox格式在文本框中显示选项卡,而不是在下拉列表中

时间:2014-03-05 16:03:43

标签: c# .net winforms user-interface combobox

我有Province个对象,其中包含ProvinceCodeProvinceName个属性。我想在Visual Webgui(基于Winforms的)组合框中显示它们,并在它们之间有一个标签。

我正在使用PropertyChanged - Format事件,正如Eliran对this问题的回答所建议的那样:

    private void Province_Format(object sender, ListControlConvertEventArgs e)
    {
        string provCode = ((Province)e.ListItem).ProvinceCode;
        string provName = ((Province)e.ListItem).ProvinceName;
        e.Value = provCode + "\t" + provName;
    }

渲染组合框时,选项卡在文本框区域中正确显示,但在列表框区域中显示为单个空格。

Winforms组合框是否支持其列表框区域中的标签?

修改:现在有足够的声誉来添加图片。

Combobox showing tab in textbox, space in listarea

1 个答案:

答案 0 :(得分:1)

实现这一目标的最简单方法是,如果您的目标是严格显示文本间距,则只需定义并使用您自己的“标签”:

public const string TEXT_TAB = "    ";

private void Province_Format(object sender, ListControlConvertEventArgs e)
{
    string provCode = ((Province)e.ListItem).ProvinceCode;
    string provName = ((Province)e.ListItem).ProvinceName;
    e.Value = provCode + TEXT_TAB + provName;
}