Как запретить TextBox принимать управляющие символы Unicode? - PullRequest
1 голос
/ 05 июля 2011

У меня есть сценарии, в которых конечный пользователь не хочет вводить управляющие символы Unicode в Windows.Forms.TextBox, как вы, возможно, знаете, если щелкнуть правой кнопкой мыши TextBox, появится контекстное меню и появится последний пункт меню. это контекстное меню «Вставить управляющий символ Unicode->», в которое можно вставить некоторые управляющие символы Unicode в TextBox.

Кто-нибудь знает, как отключить или скрыть эти меню -> «Вставить управляющий символ Unicode», «Показать управляющие символы Юникода».

Ответы [ 3 ]

1 голос
/ 05 июля 2011

Переопределить текстовое поле ContextMenu.

Создайте свой собственный ContextMenu и реализуйте только те функции, которые вам нужны. а затем присвойте это contextMenu вашему textBox: myTextBox.ContextMenu = myContextMenu;

1 голос
/ 05 июля 2011

Чтобы добавить к ответу Джалала,

var contextMenu = new ContextMenu();
contextMenu.MenuItems.Add(new MenuItem("Copy", (s, ea) => textBox1.Copy()));
contextMenu.MenuItems.Add(new MenuItem("Paste", (s, ea) => textBox1.Paste()));
contextMenu.MenuItems.Add(new MenuItem("Undo", (s, ea) => textBox1.Undo()));
contextMenu.MenuItems.Add(new MenuItem("Select All", (s, ea) => textBox1.SelectAll()));
....

textBox1.ContextMenu = contextMenu;
1 голос
/ 05 июля 2011

Даже если вы отключите эту запись в контекстном меню, пользователь все равно сможет вводить все виды странных символов, используя копирование и вставку или Alt-Numpad. Если вы хотите строго ограничить свой ввод, скажем, A-Z, вы можете использовать MaskedTextBox .

Если вам нужно более детальное управление, вы можете обработать событие TextBox.KeyPress. Пример этой техники можно найти в следующем вопросе SO:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...