1

我有一些公司名称作为ComboBox这样的项目:

123 SomeCompany

始终为 100 到 999 之间的数字加上公司名称。

现在,如果用户选择一个项目,我希望 TextBox 只显示数字,而不是公司名称。只有当他下拉组合框时,他的公司名称才应该可见......

我尝试ComboBox1.Text = ComboBox.Text.Substring(0, 3)在 SelectedIndexChanged-Event 和 TextChanged-Event 中进行设置,但它没有做任何事情,ComboBox 中总是有一切......

AutocompleteMode设置为none

我做错什么了?

4

3 回答 3

4

要始终格式化值,您可以使用 Format 事件(FormattingEnabled = true)

    private void comboBox1_Format(object sender, ListControlConvertEventArgs e)
    {   
          e.Value = e.Value.ToString().Substring(0, 3);
    }

但是,如果您希望在显示下拉列表时显示完整值,您可以暂时禁用格式设置:

    private void comboBox1_DropDown(object sender, EventArgs e)
    {
        comboBox1.FormattingEnabled = false;
    }

    private void comboBox1_DropDownClosed(object sender, EventArgs e)
    {
        comboBox1.FormattingEnabled = true;
    }
于 2012-06-15T09:18:38.013 回答
0

试试这个

textbox1.Text = ComboBox1.SelectedItem.ToString().SubString(0, 3);
于 2012-06-15T09:25:41.937 回答
0

尝试这样的事情:

private void combox1_ SelectedIndexChanged(object sender,EventArgs e)
{
      string value = (combox1.selectedItem != null) ? 
          combox1.selectedItem.ToString().Substring(0, 3) : string.Empty;
}
于 2012-06-15T09:26:11.470 回答