当组合框改变时自动输入文本框

时间:2013-07-24 03:02:40

标签: c#

我的表单应用程序中有三个组合框和一个文本框,

这是组合框和文本框

Combobox and TextBox

问题是,当组合框改变时如何自动输入文本框。

示例:

1: 当我选择组合框1“值”时,文本框值变为+1

当我选择组合框1“选择无线电”时,texbox值更改为null,因此文本框值为“”

2:

当我选择组合框1“值”时,文本框值更改为+1

当我选择组合框2“值”时,文本框值更改为+1,因此文本框值为“2”

3 个答案:

答案 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;
}