0

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

4

3 回答 3

4

你可以尝试这样的事情: -

if (e.KeyCode == Keys.Enter) 
{
    e.SuppressKeyPress = true;
}
于 2013-08-07T17:57:00.620 回答
4

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

此外,如果您有任何其他允许使用的快捷方式,那么您可以查看此C#:如何使在文本框中按 Enter 触发按钮,但仍允许诸如“Ctrl+A”之类的快捷方式通过?

使用相同的,你也可以阻止

private void textBoxToSubmit_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        e.SuppressKeyPress=true;
    }
}
于 2013-08-07T18:10:10.837 回答
1

你的问题至少可以说有点模棱两可;但是,文本框控件有一个名为 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;
        }
    }
于 2013-08-07T18:19:33.160 回答