首页 > 解决方案 > 如果输入改变则清除输出

问题描述

我的表单上有两个文本框。第一个文本框在单击时计算金额,并且金额总计显示在第二个文本框中。我正在尝试创建一个事件处理程序,如果在第一个文本框中输入的值发生更改,它将清除第二个文本框中的文本。例如,您只有 5 岁才能上车。用户在第一个文本框中输入 5。第二个文本框显示“你可以骑!”。现在如果用户更改数字 5,我想要“你可以骑!” 被清除。我没有任何代码,因为我不确定您为哪个文本框创建事件处理程序,是接受输入的文本框,还是显示输出的文本框。有没有人有任何建议或我可以在 Microsoft 上搜索什么?s页面了解更多关于清算的信息?到目前为止,我唯一要找到的是这个例子:textBoxName.Clear();但我不知道把它放在哪里。有什么建议么?谢谢你。

标签: winforms

解决方案


是的,您可以使用TextBox.Clear Method来清除 TextBox 中的文本。

下面是一个简单的例子,判断TextBox1中的值是否为“5”,并实时修改TextBox2中的值。

该演示使用Int32.TryParse 方法来检测 TextBox1 中的值是否为数字。

public Form1()
{
    InitializeComponent();
    textBox1.TextChanged += textBox1_TextChanged;
}

private void textBox1_TextChanged(object sender, EventArgs e)
{
    int number;
    bool success = Int32.TryParse(textBox1.Text, out number);
    // input is a number
    if (success)
    {
        // if input is 5
        if (number == 5)
        {
            textBox2.Text = "You can ride!";
        }
        // else clear TextBox2
        else
        {
            textBox2.Clear();
        }
    }
    // input is not a number, re-input
    else if (!string.IsNullOrEmpty(textBox1.Text))
    {
        // Clear wrong input
        textBox1.Clear();
        MessageBox.Show("Please input a number!");
    }
    // input is empty
    else
    {
        textBox2.Clear();
    }
}

推荐阅读