1

当我按下回车键时,我有一个文本框,我想在其中发送数据(myButton )。

private void txtBox_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Shift && e.KeyCode == Keys.Return)
    {
        // Shift + Return
    }
    else if (e.KeyCode == Keys.Return)
    {
        // Return
        if (!String.IsNullOrWhiteSpace(txtBox.Text))
            myButton.PerformClick();
    }
}

如果我有一些文本,这很好用,但是当我没有文本时,如果我按 Return,它会添加一个新行,我不希望这样。有什么建议吗?

4

1 回答 1

1

如果您不希望向 TextBox 添加行,则应将其 Multiline 属性设置为 False。

通常,如果您不希望处理 Enter 键,则需要阻止其触发 KeyPress 事件。您可以通过将 e.SuppressKeyPress 属性设置为 true 来执行此操作。使固定:

else if (e.KeyCode == Keys.Return)
{
    // Return
    if (!String.IsNullOrWhiteSpace(txtBox.Text))
        myButton.PerformClick();
    e.Handled = e.SuppressKeyPress = true;
}
于 2013-09-13T16:30:24.837 回答