Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中仅显示组合框中项目的子字符串_C#_Winforms_Combobox - Fatal编程技术网

C# 如何在C中仅显示组合框中项目的子字符串

C# 如何在C中仅显示组合框中项目的子字符串,c#,winforms,combobox,C#,Winforms,Combobox,我有一些公司名称作为组合框中的项目,如下所示: 123某某公司 始终是介于100和999之间的数字加上公司名称 现在,如果用户选择一个项目,我希望文本框只显示数字,而不是公司名称。只有当他放下组合框时,公司名称才可见 我试图在SelectedIndexChanged事件和TextChanged事件中设置ComboBox1.Text=ComboBox.Text.Substring0,3,但它没有做任何事情,ComboBox中始终有所有内容 “自动完成模式”设置为“无” 我做错了什么?要始终格式化值

我有一些公司名称作为组合框中的项目,如下所示:

123某某公司

始终是介于100和999之间的数字加上公司名称

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

我试图在SelectedIndexChanged事件和TextChanged事件中设置ComboBox1.Text=ComboBox.Text.Substring0,3,但它没有做任何事情,ComboBox中始终有所有内容

“自动完成模式”设置为“无”


我做错了什么?

要始终格式化值,可以使用FormattingEnabled=true的format事件

    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;
    }

要始终格式化该值,可以使用FormattingEnabled=true的format事件

    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;
    }
试试这个

textbox1.Text = ComboBox1.SelectedItem.ToString().SubString(0, 3);
试试这个

textbox1.Text = ComboBox1.SelectedItem.ToString().SubString(0, 3);

试着这样做:

private void combox1_ SelectedIndexChanged(object sender,EventArgs e)
{
      string value = (combox1.selectedItem != null) ? 
          combox1.selectedItem.ToString().Substring(0, 3) : string.Empty;
}

试着这样做:

private void combox1_ SelectedIndexChanged(object sender,EventArgs e)
{
      string value = (combox1.selectedItem != null) ? 
          combox1.selectedItem.ToString().Substring(0, 3) : string.Empty;
}

您是否尝试设置SelectedText?是否设置要设置的文本框?我尝试了以下操作:ComboBox.selectionstart=0,之前我尝试了您的建议,但也没有任何效果…Sry我犯了一个错误,它是comobox而不是TextBox…您是否尝试设置SelectedText?是否设置要设置的文本框?我尝试了以下操作:ComboBox.selectionstart=0,然后我尝试了你的建议很早就提出了,但也没有起到任何作用…Sry我犯了一个错误,它是comobox而不是textbox。。。。