处理并验证TextBox,RichTextBox和ComboBox中的输入键入和按键,显示自定义气球提示消息
HandlEdInput
处理和验证输入键入和按下的键TextBox
,RichTextBox
并ComboBox
显示自定义气球提示消息。
由于其使用简单,加上高度可定制的属性,不仅可以阻止输入输入和按键,还可以通过使用正则表达式进行ComboBox
验证,还可以验证输入的输入是否在项目列表中,包括更多功能。
这是它可以做什么的列表。
ComboBox
来自项目列表的输入与否
处理文字下降{KeyData}
”最好的部分是所有这些设置都可以以非常简单的方式组合。
例如,假设您要捕获电话号码。
我开始这个供个人使用,我需要一些强大的输入类型处理程序,用于我正在处理的项目,而不是仅为输入阻塞编写必要的代码。所以我认为有一个通用,灵活和完整的解决方案来限制和控制输入类型是有用的,这就是这个项目诞生的方式。起初,它是一个非常简单的代码,并满足了我当时的需求。但是几天之后,我决定继续我的工作,考虑可以纳入的新的有用的想法,并在几周的工作之后......现在它已经准备好被分享了。
首先,你必须通过TextBox
,RichTextBox
或ComboBox
对类实例声明控制。
Handled.Input T1 = new Handled.Input(textBox1);
(提示:如果您希望多个控件的行为相同,您也可以传递多个用逗号分隔的控件)。
然后,您可以使用类的实例对象开始设置。
Handled.Input T1 = new Handled.Input(textBox1);
T1.Handler.Settings.Set_BlockadeMode = true;
T1.Handler.Handle_Numeric = true;
T1.Handle();
给出的示例是关于如何仅允许数字作为输入的简单演示。
Handled.Input T2 = new Handled.Input(textBox2);
T2.Handler.Handle_NonAlphanumeric = true;
T2.Handler.List_IncludeChars = new List<char> { '_', '-', '.' };
T2.Handler.List_RestrictKeys = new List<string> { "Space" };
T2.Message.OnFocus.Set_Title = "Please enter a username";
T2.Message.OnFocus.Set_Message =
"Username can only contain {tokens} including the following characters:\n{include_chars}";
T2.Message.OnInvalidInput.Set_Icon = Handled.BalloonTip.ICON.ERROR;
T2.Message.OnInvalidInput.Set_Title = "Invalid";
T2.Message.OnInvalidInput.Set_Message = "Enter a valid input.";
T2.Message.OnIncludeChars.Set_Visible = false;
T2.Message.Settings.Set_AllTimeouts = 5000;
T2.Handle();
声明类实例后,将控件传递给handle:
(注意:设置顺序无关紧要,只要它以类实例声明开头并使用Handle()
方法完成)。
Handled.Input T3 = new Handled.Input(textBox3);
T3.Handler.Settings.Set_BlockadeMode = true;
T3.Handler.Handle_Alpha = true;
T3.Handler.List_RestrictKeys = new List<string> { "Space" };
T3.Handler.Settings.Set_RegexMatchPattern = "^(=[MDCLXVI])M*DC{0,4}LX{0,4}VI{0,4}$";
T3.Handler.Settings.Set_RegexOptions =
System.Text.RegularExpressions.RegexOptions.IgnoreCase;
T3.Handler.Settings.Set_ShortcutsEnabled = false;
T3.Message.OnFocus.Set_Message = "Enter a roman number.";
T3.Message.OnRegexMismatch.Set_Message = "Type a valid roman number.";
T3.Message.OnRegexMatch.Set_Message = "The roman number is valid.";
T3.Message.OnRestrictKeys.Set_Visible = false;
T3.Handle();
声明类实例后,将控件传递给handle:
Handled.Input C1 = new Handled.Input(comboBox1);
C1.Handler.Settings.Set_BlockadeMode = true;
C1.Handler.Handle_Numeric = true;
C1.Handler.Settings.Set_ComboBoxValidator = true;
C1.Message.OnFocus.Set_Title = "Set Day";
C1.Message.OnFocus.Set_Message = "Please set the day here.";
C1.Message.OnInvalidInput.Set_Message = "Set a valid day.";
C1.Message.OnComboBoxInvalidInput.Set_Message = "Set a valid day of the month.";
C1.Message.OnComboBoxValidInput.Set_Message = "The day is valid now.";
C1.Handle();
声明类实例后,将控件传递给handle:
ComboBox
验证器,这意味着它将在项目列表中查找输入的输入并进行验证ComboBox
气球提示无效输入消息的内容(即,在有效数字字符上但不在ComboBox
项目列表中)ComboBox
气球提示有效输入消息的内容
您可以为气球提示消息使用一组参数。
这些参数将实时替换为一些有用的信息,例如,为了让用户在第一时间知道哪个是输入控件的有效输入,您将在焦点消息中使用如下内容:“输入可以仅包含 {tokens} ,包括以下字符:\ n {include_chars}。“
可以使用的参数如下:
{tokens}
=显示允许的令牌{KeyChar}
=显示按下的字符{KeyData}
=显示按下的键的名称{exclude_chars}
=显示排除字符列表{include_chars}
=显示包含字符的列表{restrict_keys}
=显示限制键列表
添加了可选的自定义控件。这些自定义控件现在可以通过支持 两种方式的文本Drop
和 Paste
处理(键盘快捷键和上下文菜单)来完全处理所有输入尝试 。
对于完整的输入处理,建议使用这些自定义控件。
您可以在Designer工具箱中找到它们。将它们添加到用户界面后,您可以自定义其行为以满足您的需求。
非常感谢Chris和Ivan Petrov提供的代码,使我能够使这个项目成长,代码中的更多细节。
Drop
上的验证支持HandledTextBox
,HandledRichTextBox
并HandledComboBox
控制!(需要Set_DropValidationOnCustomControls
启用“ ”,这也会自动设置“ AllowDrop
”/“ EnableAutoDragDrop
”属性)RTF
在text Paste
/ Drop
on 时添加了格式支持 , HandledRichTextBox
并且不需要重新格式化空格/分隔线Is_RegexValidMatch
”/“ Is_ComboBoxInputOnList
”)HandlEdInput
变得更加强大!
Paste
命令处理的自定义控Handled.Input
类中添加自定义语言。Control
”/“ Shift
”变体(即“ Space
,Control
”,“ Space
,Shift
”)传递给限制键列表,以避免任何可能的方式绕过受限制的键。相反,只需传递正常情况(即“ Space
”)。Space
限制键列表上的“ ”,现在您还可以在排除列表中添加空白字符以避免间距。F1
” 随时手动显示它)Set_ContextMenuOnCustomControls
”以定义是否设置上下文菜单HandledTextBox
,HandledRichTextBox
和HandledComboBox
。(默认值:True
)Set_ContextMenuShortcutsOnCustomControls
”以定义是否将命令快捷方式设置为可见HandledTextBox
,HandledRichTextBox
以及HandledComboBox
上下文菜单。(默认值:True
)Handle_TextSelectionOnCustomTextBox
”以定义是否可以选择HandledTextBox
文本(自动添加文本选择键盘快捷键以限制键列表)Handle_TextSelectionOnCustomRichTextBox
”以定义是否可以选择HandledRichTextBox
文本(自动添加文本选择键盘快捷键以限制键列表)IsRegexValidMatch
”以编程方式查询正则表达式模式是否匹配!IsComboBoxInputOnList
”以编程方式查询当前输入是否列在ComboBox
列表中!Handle_BeginSpace
”和“ Handle_OneSingleSpacing
”现在变得更加强大和智能!
热门源码