C#找不到有关自动更新文本框WITH计算的初学者说明

时间:2018-06-06 03:32:52

标签: c# winforms

我正在进行计算,但随后我提出了在填写textBox1时自动进行计算的想法。我如何调用button1_Click内的计算?我知道如何将您在textBox2中写下的内容复制到textBox1,但我的知识很少是为了在Total内调用整个if语句计算来自动更新textBox2我在没有按钮的情况下在textBox1内写数字。

private void textBox1_TextChanged(object sender, EventArgs e) { }
private void textBox2_TextChanged(object sender, EventArgs e) { }
private void button1_Click(object sender, EventArgs e)
{
    aantalgroep = int.Parse(textBox1.Text);

    /* Wat er gebeurd bij RadioButton1 Checked */
    if (radioButton1.Checked) 
    {
        number = aantalgroep * 8;
        textBox2.Text = number.ToString();

        if (aantalgroep < 10)
            textBox2.Text = number.ToString();
    }
}

2 个答案:

答案 0 :(得分:1)

进入设计编辑器,单击文本框,单击小光源,找到TextChanged并单击指向下方的箭头(TextChanged字段旁边)。在那里你将招募你已经创建的名为button1_Click的方法,选择它并瞧。每次更改文本框中的文本时,您都会调用自动计算方法。

答案 1 :(得分:0)

为了理智,您应该将逻辑移出点击处理程序,因为您打算从各个地方调用它。提取逻辑后,您可以从任何地方调用它。

private void textBox1_TextChanged(object sender, EventArgs e)
{
    Calculate();
}

private void textBox2_TextChanged(object sender, EventArgs e)
{
    //You probably don't want to call Calculate here, due to infinite recursion
    //Calculate();
}    

private void button1_Click(object sender, EventArgs e)
{
    Calculate();
}

private void Calculate()
{
    aantalgroep = int.Parse(textBox1.Text);

    /* Wat er gebeurd bij RadioButton1 Checked */
    if (radioButton1.Checked) {
        number = aantalgroep * 8;
        textBox2.Text = number.ToString();
        if (aantalgroep < 10) {
            textBox2.Text = number.ToString();
        }
    }
}