2013-08-07 2 views
1

Я развиваю чат-систему. И у меня есть кнопка для отправки текста в текстовое поле в журнал чата. Как я могу остановить пользователя нажатием клавиши Enter и отключить клавишу Enter. Я знаю, что там много сообщений, но решения для меня не сработали.Отключить ввод ключа в текстовые поля

+1

Какая платформа (WinForms, WPF, сеть и т. д.)? И что _exactly_ вы попробовали, что не сработали (включая детали)? –

+5

Метро? WinForms? WPF? Silverlight? Windows Phone? ASP.Net? MonoTouch? – SLaks

+0

У вас есть метод только методом Click? –

ответ

2

Вы можете попробовать что-то вроде этого: -

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

Но пользователь все еще может нажать клавишу Enter, чтобы отправить текст из текстового поля. Может отключить клавишу Enter? – user2650977

4

Я думаю, что вам не нужно, чтобы остановить пользователя от нажатия ввода, но вместо того, чтобы отправить чат другому лицу на прессе войти.

Кроме того, если у вас есть какие-либо другие ярлыки, чтобы иметь возможность, то вы можете посмотреть на этой C#: How to make pressing enter in a text box trigger a button, yet still allow shortcuts such as "Ctrl+A" to get through?

Используя тот же вы можете также блокировать

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

Это не работает в текстовом поле в vb net 2015 ... оно работает для ЛЮБОГО ключа кроме Enter ... Я не знаю почему. – Zibri

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; 
     } 
    } 
Смежные вопросы