我有三個組合框,並在我的表單應用一個文本框,輸入文本框時自動組合框改變
這是組合框和文本框
的問題是,如何輸入文本框自動更改組合框時。
例如:
1: 當我選擇組合框1「值」,則文本框的值變更爲1
當我選擇組合框1「選擇無線電」改變texbox值設置爲null所以文本框值爲 「」
2:
當我選擇組合框1 「值」,則文本框的值變更爲1
當我選擇組合框2的「值」時,文本框的值改爲+1,因此文本框的值爲「2」
我有三個組合框,並在我的表單應用一個文本框,輸入文本框時自動組合框改變
這是組合框和文本框
的問題是,如何輸入文本框自動更改組合框時。
例如:
1: 當我選擇組合框1「值」,則文本框的值變更爲1
當我選擇組合框1「選擇無線電」改變texbox值設置爲null所以文本框值爲 「」
2:
當我選擇組合框1 「值」,則文本框的值變更爲1
當我選擇組合框2的「值」時,文本框的值改爲+1,因此文本框的值爲「2」
將所有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();
}
'string.empty'和'counter'中的一些錯誤,因爲字符串爲int –
編輯瞭解決這些問題的答案。 – Vasanth
'cmbBox1','cmbBox2','cmbBox3'調用'RecalcTotal();'?謝謝 –
像這樣的事情?
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函數中。
不知道我的理解是否正確..是否需要爲每個選定的組合框添加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;
}
組合框應該有一個OnChange事件或其他類型的事件。您可以在該事件中響應值的變化。通常雙擊表單設計器中的組合框將會引導您進入該事件。 – David