我的表单应用程序中有三个组合框和一个文本框,
这是组合框和文本框
问题是,当组合框改变时如何自动输入文本框。
示例:
1: 当我选择组合框1“值”时,文本框值变为+1
当我选择组合框1“选择无线电”时,texbox值更改为null,因此文本框值为“”
2:
当我选择组合框1“值”时,文本框值更改为+1
当我选择组合框2“值”时,文本框值更改为+1,因此文本框值为“2”
答案 0 :(得分: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();
}
答案 1 :(得分: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函数中。
答案 2 :(得分: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;
}