{ var localTxt = lastValidText; var proposedText = GetProposedText(tbInstance, e1.Text); if (!maskRegEx.IsMatch(proposedText)) { e1.Handled = true; } }; tbInstance.Loaded += (s, e1) => { if (maskRegEx.IsMatch(tbInstance.Text)) { lastValidText = tbInstance.Text; SetHasRegExMisMatch(tbInstance,false); } else { SetHasRegExMisMatch(tbInstance, true); } }; tbInstance.TextChanged += (s, e1) => { if (maskRegEx.IsMatch(tbInstance.Text)) { lastValidText = tbInstance.Text; SetHasRegExMisMatch(tbInstance, false); } else { SetHasRegExMisMatch(tbInstance, true); } }; tbInstance.PreviewLostKeyboardFocus += (s, e1) => { var localTxt = lastValidText; if (!maskRegEx.IsMatch(tbInstance.Text)) { SetHasRegExMisMatch(tbInstance, true); e1.Handled = true; tbInstance.Text = localTxt; tbInstance.CaretIndex = 99; } else { SetHasRegExMisMatch(tbInstance, false); } }; } private static string GetProposedText(TextBox textBox, string newText) { var text = textBox.Text; if (textBox.SelectionStart != -1) { text = text.Remove(textBox.SelectionStart, textBox.SelectionLength); } text = text.Insert(textBox.CaretIndex, newText); return text; } }
Saturday, November 19, 2016
Attached Property based TextBox RegEx mask
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment