2013-07-24 98 views
1

我有三個組合框,並在我的表單應用一個文本框,輸入文本框時自動組合框改變

這是組合框和文本框

Combobox and TextBox

的問題是,如何輸入文本框自動更改組合框時。

例如:

1: 當我選擇組合框1「值」,則文本框的值變更爲1

當我選擇組合框1「選擇無線電」改變texbox值設置爲null所以文本框值爲 「」

2:

當我選擇組合框1 「值」,則文本框的值變更爲1

當我選擇組合框2的「值」時,文本框的值改爲+1,因此文本框的值爲「2」

+0

組合框應該有一個OnChange事件或其他類型的事件。您可以在該事件中響應值的變化。通常雙擊表單設計器中的組合框將會引導您進入該事件。 – David

回答

0

將所有3個組合框的SelectedIndexChanged事件綁定到一個事件處理函數並調用通用函數來計算計數。

例子:

private void cmbBox_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    RecalcTotal(); 
} 

private void RecalcTotal() 
{ 
    int counter = 0; 
    if(cmbBox1.SelectedIndex > 0) 
     counter++; 
    if(cmbBox2.SelectedIndex > 0) 
     counter++; 
    if(cmbBox3.SelectedIndex > 0) 
     counter++; 

    txtBox1.Text = string.Empty; 
    if(counter > 0) 
     txtBox1.Text = counter.ToString(); 
} 
+0

'string.empty'和'counter'中的一些錯誤,因爲字符串爲int –

+0

編輯瞭解決這些問題的答案。 – Vasanth

+0

'cmbBox1','cmbBox2','cmbBox3'調用'RecalcTotal();'?謝謝 –

0

像這樣的事情?

public Form1() 
{ 
    InitializeComponent(); 
    HoolHandlers(); 
    LoadValues(); 
} 

private void HoolHandlers() 
{ 
    comboBox1.SelectedIndexChanged += ComboBoxItemChanged; 
    comboBox2.SelectedIndexChanged += ComboBoxItemChanged; 
    comboBox3.SelectedIndexChanged += ComboBoxItemChanged; 
} 

private void LoadValues() 
{ 
    comboBox1.Items.Add("select radio..."); 
    comboBox1.Items.Add("value"); 

    comboBox2.Items.Add("select radio..."); 
    comboBox2.Items.Add("value"); 

    comboBox3.Items.Add("select radio..."); 
    comboBox3.Items.Add("value"); 
} 

private void ComboBoxItemChanged(object sender, EventArgs eventArgs) 
{ 
    ComboBox combo = (ComboBox) sender; 
    if (combo.SelectedItem == "value") 
    { 
     int tbValue; 
     if (textBoxContainingValue.Text != "") 
     { 
      tbValue = int.Parse(textBoxContainingValue.Text); 
      tbValue++; 
     } 
     else 
     { 
      tbValue = 1; 
     } 

     textBoxContainingValue.Text = tbValue.ToString(); 
    } 
    else 
    { 
     textBoxContainingValue.Text = ""; 
    } 

} 

請注意,所需的所有邏輯都在ComboBoxItemChanged函數中。

0

不知道我的理解是否正確..是否需要爲每個選定的組合框添加1?

private void ComboBoxItemChanged(object sender, EventArgs eventArgs) 
{ 
    Int32 b1 = (cmbBox1.SelectedIndex > 0) ? 1 : 0; 
    Int32 b2 = (cmbBox2.SelectedIndex > 0) ? 1 : 0; 
    Int32 b3 = (cmbBox3.SelectedIndex > 0) ? 1 : 0; 

    Int32 Total = b1 + b2 + b3; 
    txtBox.Text = (Total > 0) ? Total.ToString() : String.Empty; 
} 
相關問題