【问题标题】:In winforms, on keydown event handler textbox event keypress is not working在 winforms 中,keydown 事件处理程序文本框事件 keypress 不起作用
【发布时间】:2013-01-23 13:21:47
【问题描述】:

在 winform 应用程序中,我使用按键事件进入下一个字段。它工作正常,但我想在这里处理文本框的事件以及按键。如果表单上的按键事件可用,则不会触发按键事件。 我该如何解决它。

有什么建议吗?

【问题讨论】:

  • 您需要发布一些代码。您是否也将表单 KeyPreview 属性设置为 true?
  • 你尝试过 keyup_Down 事件吗?
  • 您是否在表单级别处理 keydown 事件(KeyPreview=True),您是否希望在特定文本框的 KeyPress 事件中处理相同的键?
  • 是的,keypreview 是真的。如果我将 KeyPreview 属性设置为 false,则文本框的 KeyPress 将被调用。但我想同时使用这两个处理程序。
  • if(e.keycode == keys.Enter || e.keycode == TAB) { e.SuppressKeyPress; e.Handled == true ; this.SelectNextControl(this.ActiveControl, true,true,true,true) } 这是我用来进行下一个控件的。

标签: c# winforms


【解决方案1】:

每个 KeyDown 事件都会收到一个 KeyEventArgs 参数。
在 KeyEventArgs 参数中有一个名为 SuppressKeyPress 的属性。
According to MSDN 将此属性设置为 true 可避免 KeyPress 事件
如果将此属性设置为 false,当前具有焦点的控件将接收按键。

private void formMain_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    // Do your processing
    ....
    e.Handled = true;
    e.SuppressKeyPress = false;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    相关资源
    最近更新 更多