我有不希望最终用户向Windows.Forms.TextBox输入Unicode控制字符的场景,如您右键单击TextBox,将显示上下文菜单并显示最后一个菜单项此上下文菜单是“Insert Unicode control character->”,它可以在TextBox中插入一些Unicode控制字符。
有没有人知道如何禁用或隐藏这些菜单 - > “插入Unicode控制字符”,“显示Unicode控制字符”。
答案 0 :(得分:1)
即使您禁用此上下文菜单条目,用户仍然可以使用copy&amp ;;输入所有类型的奇怪字符。粘贴或使用Alt-Numpad。如果您想严格限制输入,例如A-Z,则可以使用MaskedTextBox控件。
如果需要更细粒度的控件,可以处理TextBox.KeyPress事件。这个技术的一个例子可以在以下SO问题中找到:
答案 1 :(得分:1)
覆盖您的文本框ContextMenu
。
设计您拥有ContextMenu
并仅实现您想要的功能。然后将contextMenu
分配给您的textBox
:myTextBox.ContextMenu = myContextMenu;
答案 2 :(得分:1)
添加到Jalal的答案,
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;