AcceptsReturn TextBox无法正常运行

时间:2012-05-08 17:23:56

标签: c# .net winforms

我在一个设置为多行的表单上有一个简单的搜索字段(我理解这是更改文本框高度的唯一方法)并且将标记AcceptsReturn设置为false。

但是,当我在该控件中按Enter键时,不是按原样激活默认按钮,而是放入返回字符。

现在,我还尝试使用KeyPress事件检查是否已按下Enter键以激活搜索按钮单击功能,希望它会覆盖此返回行为 - 但事实并非如此。现在它只运行搜索并插入一个返回字符。

我正在运行Visual Studio 2010(虽然这个问题在转换之前似乎也存在于2008年)和C#.NET 2.0。任何解决方案?

2 个答案:

答案 0 :(得分:5)

我看到答案已经发布了,其中提到了AcceptButton属性,但我想我会更清楚地说明为什么这是必要的:quoth MSDN,在AcceptsReturn上,“如果表单没有默认按钮,无论此属性的值如何,ENTER键将始终在控件中创建一个新的文本行。“ (我只是在虚拟表单上尝试过 - 通过“默认按钮”,它们实际上意味着表单的AcceptButton属性。使用一组,AcceptsReturn的值产生了差异;没有一个,它没有效果。)

至于KeyPress,虽然在这种情况下显然不是最好的方法,但我不得不在过去使用这样的技巧 - 你是否记得在你自己处理事件的情况下将e.Handled设置为true ?

答案 1 :(得分:3)

表单有一个名为 AcceptButton 的属性。这是指向您正在调用默认按钮的按钮吗?

我刚刚写了一点测试,它似乎对我有用。