繁体   English   中英

如何防止文本框接受 Unicode 控制字符?

[英]How to prevent a TextBox to accept Unicode control characters?

我有不希望最终用户向 Windows.Forms.TextBox 输入 Unicode 控制字符的情况是“插入Unicode控制字符->”,可以在TextBox中插入一些Unicode控制字符。

有没有人知道如何禁用或隐藏这些菜单->“插入 Unicode 控制字符”,“显示 Unicode 控制字符”。

即使您禁用此上下文菜单条目,用户仍然可以使用复制和粘贴或使用 Alt-Numpad 输入各种奇怪的字符。 如果您想将输入严格限制在 AZ,您可以使用MaskedTextBox控件。

如果需要更细粒度的控制,可以处理 TextBox.KeyPress 事件。 可以在以下 SO 问题中找到此技术的示例:

覆盖您的文本框ContextMenu

设计您自己的ContextMenu并仅在其上实现您想要的功能。 然后将该contextMenu分配给您的textBoxmyTextBox.ContextMenu = myContextMenu;

为了增加 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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM