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

    }

只要我输入我名字的第一个字母,这个程序就会被执行。如何让程序等到我完成输入字段的整个字符串(例如 Name ex: James)。

4

2 回答 2

8

如果您想确定用户何时完成输入,您可以捕获 leave 事件 - 当焦点在该文本框上丢失时触发 - 即用户在文本框外单击:

private void NameVal_Leave(object sender, EventArgs e)
{
    //Do your stuff
    String text = NameVal.Text;
}
于 2013-05-17T23:35:56.763 回答
0

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

于 2019-09-08T23:29:45.930 回答