У меня есть многострочное текстовое поле, которое не должно принимать алфавиты, цифры, новую строку (клавиша ввода) и клавишу Backspace. Короче говоря, textbox.Text
не должно быть редактируемым. Но я хочу, чтобы текстовое поле принимало две комбинации клавиш - control и control + R. Один из способов сделать текстовое поле недоступным для редактирования - сделать его доступным только для чтения. Но тогда текстовое поле не будет принимать любое нажатие клавиши вообще. Короче говоря, мои ярлыки (control и control + R) не будут работать (Control + R) только для чтения.
Может ли кто-нибудь помочь в этом отношении. Это все, что я должен сделать.
Одна вещь, которую я мог бы здесь сделать, это не делать текстовое поле доступным только для чтения, а затем ограничивать символы (алфавиты и цифры), которые можно вводить в текстовое поле. С этим кодом:
private void txtResult_KeyPress(object sender, KeyPressEventArgs e)
{
// only modifier keys, escape, enter, backspace etc is accepted now
e.Handled = !char.IsControl(e.KeyChar);
}
private void txtResult_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control == true)
{
if (e.KeyCode == Keys.R)
{
// do something
}
else
{
//do something
}
}
if (e.KeyCode == Keys.Escape)
{
//do something
}
}
С помощью этой техники я могу заставить работать ярлыки (control и control + R). Но проблема этого метода в том, что клавиши Enter и Backspace работают так же, что позволяет редактировать текст текстового поля. Как я могу специально ограничить ввод клавиш Enter и Backspace из текстового поля, но разрешить Control и Escape ??