代码之家  ›  专栏  ›  技术社区  ›  Brett Allen

Control+Enter/Return键发送什么字符值?

  •  2
  • Brett Allen  · 技术社区  · 14 年前

    我们有一个多行控件,试图阻止使用Enter/Return键创建新行。

    奇怪的是,“acceptsreturn”作为false并不能阻止这一点。

    因此,我们添加了以下内容:

    Private Sub txtAddr_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtAddr.KeyPress
        If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then
            e.Handled = True
        End If
    End Sub
    

    这样做很好,但是有一个QA人员发现点击control+enter仍然是一条新线。

    我们如何预防这种情况?

    为什么接受者变为假而不是像它看起来应该的那样工作?它的目的是什么?

    3 回复  |  直到 14 年前
        1
  •  4
  •   Simon P Stevens    14 年前
        2
  •  2
  •   Hans Passant    14 年前

    private void textBox1_KeyDown(object sender, KeyEventArgs e) {
      if ((e.KeyData & Keys.KeyCode) == Keys.Enter) e.SuppressKeyPress = true;
    }
    
        3
  •  0
  •   overslacked    14 年前