Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 如果输入发生更改,则清除输出_Winforms - Fatal编程技术网

Winforms 如果输入发生更改,则清除输出

Winforms 如果输入发生更改,则清除输出,winforms,Winforms,我的表格上有两个文本框。第一个文本框在单击时计算金额,第二个文本框中显示总额。我正在尝试创建一个事件处理程序,如果第一个文本框中输入的值发生更改,它将清除第二个文本框中的文本。 例如,只有在你5岁的时候,你才能乘坐这辆车。用户在第一个文本框中输入5。第二个文本框显示“您可以骑车!”。现在,如果用户更改数字5,我希望清除“你可以骑!”。 我没有任何代码,因为我不确定为哪个文本框创建事件处理程序,是接受输入的还是显示输出的。有没有人有什么建议,或者我可以在微软的页面上搜索什么来了解更多关于清算的信息

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

是的,您可以使用
TextBox.Clear方法来清除文本框中的文本

下面是一个简单的示例,用于确定TextBox1中的值是否为“5”,并实时修改TextBox2中的值

演示用于检测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();
    }
}

您可能希望连接到输入文本框。我希望仅当第一个文本框中的输入发生更改时,第二个文本框才会被清除。我尝试为您提到的第一个文本框签出TextChanged事件,但它在我的表单上显示了计算和退出按钮的下拉菜单,它没有显示任何与其他文本框相关的内容。@Ryth500您可以使用前面提到的@JSteward。我不知道你说的表单上的按钮下拉菜单是什么意思
TextChanged
TextBox
的默认事件,因此只需双击设计器中的第一个
TextBox
,并将代码写入它生成的空函数中。理想情况下,可以在输入框附近的某个位置发布一条非侵入性的“横幅消息”(类似于“youhave have caps lock/num lock on”)出现在登录屏幕上)而不是模式弹出对话框,因为所有文本更改都会触发“文本更改”事件,但对于当前熟悉操作表面上的GUI编程来说,答案是好的。