按下按键不按预期工作

时间:2013-09-13 15:52:14

标签: c# winforms

当我按Return键时,我有一个文本框,我想发送数据( 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();
    }
}

如果我有一些文字,但是当我没有文字时,如果按下返回它会添加一个新行并且我不想要它。任何消化?

1 个答案:

答案 0 :(得分: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;
}