如何防止按键更新MaskedTextBox的文本?
我需要验证用户在MaskedTextBox
输入的字符。 哪些字符有效取决于已经输入的字符。 我已经尝试使用IsInputChar
和OnKeyPress
,但无论我在返回false IsInputChar
或集e.Handled
在对的OnKeyPress真,框的文本仍设置为无效值。
如何防止按键更新MaskedTextBox
的文本?
更新:MaskedTextBox不是TextBox。 我认为这不应该有所作为,但是从多少人告诉我e.Handled
应该起作用,或许它确实有效。
这不会在文本框1中键入字符'x'。
char mychar='x'; // your particular character
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == mychar)
e.Handled = true;
}
编辑 :它也适用于MaskedTextBox。
HTH
KeyPress
应该做到这一点; 你在做这个表单吗? 或在控制? 例如:
static void Main() {
TextBox tb = new TextBox();
tb.KeyPress += (s, a) =>
{
string txt = tb.Text;
if (char.IsLetterOrDigit(a.KeyChar)
&& txt.Length > 0 &&
a.KeyChar <= txt[txt.Length-1])
{
a.Handled = true;
}
};
Form form = new Form();
form.Controls.Add(tb);
Application.Run(form);
}
(只允许“升序”字符)
请注意,这不会保护您免于复制/粘贴 - 您可能还必须查看TextChanged和/或Validate。
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keydown.aspx可能帮助,KeyDown事件?
链接地址: http://www.djcxy.com/p/95957.html上一篇: How do I prevent a keypress from updating a MaskedTextBox's text?