在我的文本框中输入“仅”一个字符后,为什么我的文本框TextChanged事件被触发?

时间:2013-05-17 23:28:49

标签: winforms textbox user-input textchanged

private void NameVal_TextChanged(object sender, EventArgs e)
    {
        String text = NameVal.Text;

    }

一旦我输入我姓名的第一个字母,该程序就会被执行。如何输入程序,直到我输入字段的整个字符串(例如名称ex:James)为止。

2 个答案:

答案 0 :(得分:8)

如果您想确定用户何时完成输入,您可以捕捉离开事件 - 当该文本框上的焦点丢失时会触发此事件 - 即用户在文本框外部点击:

private void NameVal_Leave(object sender, EventArgs e)
{
    //Do your stuff
    String text = NameVal.Text;
}

答案 1 :(得分:0)

如果您使用的是VS2019,则TextChanged事件和“焦点离开”事件之间存在关联。您必须具有TextChanged事件,然后在搜索事件并找到Focus时选择“离开”,然后将出现一个带有TextChanged事件的下拉框,其中包含与您选择的Focus Event相同的对象。这会将“离开事件”添加到Form1定义区域,但不会像通常双击TextBox一样在Form1的代码区域中生成代码。你必须创造自己。本文帮助我完成了这一部分。 那天晚些时候。 我错了。您不必选择TextChanged事件。这是当时下拉列表中唯一可用的。我必须在form1定义区域中再次添加两个事件,因为我已经删除了TextChanged事件,并手动添加了Focus_Leave事件,然后返回以添加TextChanged事件。我在这里做实验。但是,当我将它们都删除并再次在form1.design文件中重新输入事件时,就有可能选择正确的事件。我还有另一个错误,但是现在它们又重新同步了。由于MS VS是在后台生成的所有代码,因此很难更改该区域。当然,他们确实会告诉您不要更改它,但是,如果您犯了这样的错误,您不会怎么做,您不会重新开始,而是直接进入并继续前进,并学习他们的工作方式。< / p>