2012-06-15 47 views
0

我有一些公司的名稱作爲項目的ComboBox這樣的:如何只顯示一個項目的一個子在C#中的組合框

123 SomeCompany

始終在100和999,加上公司名稱之間的數。

現在,如果用戶選擇一個項目我想要的文本框,只顯示號碼,而不是公司的名字。他公司名稱應該只有當他下拉組合框時可見...

我試圖在SelectedIndexChanged-Event和TextChanged-Event中設置ComboBox1.Text = ComboBox.Text.Substring(0, 3),但它沒有做任何事情,總是有一切組合框...

AutocompleteMode設置爲none

我做錯了什麼?

+0

你有沒有嘗試設置'SelectedText'? – V4Vendetta

+0

巫婆'TextBox'你想設置? –

+0

我想這:'ComboBox.selectionstart = 0',我想你的建議早期,但它沒有做任何事情要麼... – asdasdad

回答

3

要始終格式化值,你可以使用Format事件(與FormattingEnabled =真)

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

工作完全錯誤非常感謝你! – asdasdad

0

試試這個

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

嘗試是這樣的:

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