禁用文本框中的Enter键

本文关键字:Enter 文本 | 更新日期: 2023-09-27 18:26:50

我正在开发一个聊天系统。我有一个按钮,可以将文本框中的文本发送到聊天日志。我将如何阻止用户按Enter键并禁用Enter键。我知道有很多这样的帖子,但这些解决方案对我来说并不奏效。

禁用文本框中的Enter键

您可以尝试以下操作:-

if (e.KeyCode == Keys.Enter) 
{
    e.SuppressKeyPress = true;
}

我认为您不需要阻止用户按enter键,而是在按enter键时将聊天发送给其他人。

同样,如果你有任何其他的快捷方式可以被允许,那么你可以看看这个C#:如何让按下文本框中的回车键触发按钮,但仍然允许诸如";Ctrl+A";通过吗?

使用相同的功能也可以阻止

private void textBoxToSubmit_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        e.SuppressKeyPress=true;
    }
}

至少可以说,您的问题有点模棱两可;但是,文本框控件有一个名为KeyDown的事件:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keydown.aspx

通过这种方式,您可以在按下Enter键时捕获,并根据需要修改和行为,下面是一个示例

private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (Keys.Enter == e.KeyCode)
        {
            MessageBox.Show("Enter Was Pressed");
            textBox1.Text = new String(textBox1.Text.Where((ch, i) => i < textBox1.Text.Length - 2).ToArray());
            textBox1.SelectionStart = textBox1.Text.Length;
        }
    }