我的表单应用程序中有三个组合框和一个文本框,
这是组合框和文本框
问题是,当组合框改变时如何自动输入文本框。
例子 :
1:当我选择组合框 1“值”时,文本框值更改为 +1
当我选择组合框 1“选择单选”时,texbox 值更改为 null,因此文本框值为“”
2:
当我选择组合框 1“值”时,文本框值更改为 +1
当我选择组合框 2“值”时,文本框值更改为 +1,因此文本框值为“2”
我的表单应用程序中有三个组合框和一个文本框,
这是组合框和文本框
问题是,当组合框改变时如何自动输入文本框。
例子 :
1:当我选择组合框 1“值”时,文本框值更改为 +1
当我选择组合框 1“选择单选”时,texbox 值更改为 null,因此文本框值为“”
2:
当我选择组合框 1“值”时,文本框值更改为 +1
当我选择组合框 2“值”时,文本框值更改为 +1,因此文本框值为“2”
像这样的东西?
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 函数中。
将所有 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();
}
不确定我的理解是否正确..是否需要为每个选定的组合框添加 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;
}