1

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

这是组合框和文本框

组合框和文本框

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

例子 :

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

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

2:

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

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

4

3 回答 3

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 函数中。

于 2013-07-24T03:23:32.063 回答
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();
}
于 2013-07-24T03:16:23.843 回答
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;
}
于 2013-07-24T03:56:18.530 回答