c# - TextBox 上的 AcceptsReturn 无法正常运行

标签 c# .net winforms

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

但是,当我在该控件中按下 enter 时,它并没有像它应该的那样激活默认按钮,而是放入了一个返回字符。

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

我正在运行 Visual Studio 2010(尽管这个问题在我转换它之前似乎也在 2008 年出现过)和 C# .NET 2.0。有什么解决办法吗?

最佳答案

我看到已经发布了一个答案,其中提到了 AcceptButton 属性,但我想我会更清楚地说明为什么这是必要的:quoth MSDN , 在 AcceptsReturn 上,“如果窗体没有默认按钮,则 ENTER 键将始终在控件中创建一个新的文本行,而不管此属性的值如何。” (我只是在一个虚拟表单上试了一下——通过“默认按钮”,它们实际上是指表单的 AcceptButton 属性。对于一组,AcceptsReturn 的值有所不同;没有一组,它没有任何效果。)

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

关于c# - TextBox 上的 AcceptsReturn 无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10503405/

相关文章:

C#:如何对现有对象的静态成员进行方法调用

c# - 失去通讯时Compact Framework上的问题

c# - .Net CCW 无事件,免注册COM!

.net - 为什么 System.Windows.Forms.Control MousePosition 属性可以读取,但 Location 不能读取?

c# - 在 MDI 应用程序的父窗体中心打开模态窗口

c# - 如何填充 C# Windows 窗体组合框?

c# - 公开基础库中定义的枚举类型

c# - SendMessage,何时使用 KEYDOWN、SYSKEYDOWN 等?

c# - 在pdf文件中搜索字符串

c# - 在 ListView 中设置选定的索引