Changing mask based on first character
Hello,
I'm trying to implement certain functionality with the MaskedTextBox but I'm running into issues. I was hoping that somebody might have some insight.
What I want is for the mask to change based on the first character in the MaskedTextBox. Initially the MaskedTextBox is empty and the mask is empty but if the user were to type in 1, the mask would be "C-0000" if the user typed in 2 instead, then it would be "C-LLLL".
I've tried changing the mask in the event handler for TextChanged and ValueChanged but this seems to push the cursor back to the beginning of the text.
Another issue is that if I use 1 first then highlight all and press 2, the mask is still "C-0000".
The relevant code is:
<sync:MaskedTextBox Height="25"
Width="200"
ValueChanged="MaskedEditor_ValueChanged"
Name="MaskedEditor"
PromptChar="_"/>
private void MaskedEditor_ValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
if (MaskedEditor.Value[0] == '1')
MaskedEditor.Mask = "C-0000";
else if (MaskedEditor.Value[0] == '2')
MaskedEditor.Mask = "C-LLLL";
}
Any help is appreciated. Thank you.
SIGN IN To post a reply.
5 Replies
VR
Vijayalakshmi Roopkumar
Syncfusion Team
March 23, 2015 08:15 PM UTC
Hi James,
Thank you for contacting the Syncfusion Support,
We have prepared a sample that tries to meet your requirement. In our sample we have handled the provided code in the PreviewKeyDown event, so that the cursor will be placed correctly and also when selected the 1 in the MaskedTextBox , the second value Mask property does not remain the same as the first value. Please download the sample using the below link:
Sample:MaskedTextbox_118587.zip
Please let us know if you have any other concerns,
Regards,
Vijayalakshmi V.R.
Thank you for contacting the Syncfusion Support,
We have prepared a sample that tries to meet your requirement. In our sample we have handled the provided code in the PreviewKeyDown event, so that the cursor will be placed correctly and also when selected the 1 in the MaskedTextBox , the second value Mask property does not remain the same as the first value. Please download the sample using the below link:
Sample:MaskedTextbox_118587.zip
Please let us know if you have any other concerns,
Regards,
Vijayalakshmi V.R.
JA
James
March 24, 2015 05:00 PM UTC
Thanks for this sample Vijayalakshmi.
I'm working with it right now and it looks like with your help I will be able to achieve what I need.
James
SC
Saranya CJ
Syncfusion Team
March 25, 2015 05:43 AM UTC
Hi James,
Thank you for your update. Please let us know if you require any other assistance on this.
Regards,
Saranya
Thank you for your update. Please let us know if you require any other assistance on this.
Regards,
Saranya
PA
Paul Alexandre JANSSENS
July 19, 2023 02:18 PM UTC
Hi,
I have a similar issue.
I have a SfMaskedEdit (phone number)
The mask is declared in code behind when page is loaded.
I put a TextChanged event to change the mask in function of the two first digits.
The mask is not changing and caret is going in the middle of the box.
In fact, the mask sould be :
"\\([0]\\d{0}\\)[1-9]\\d{1}\\/ [0-9]\\d{1}\\.[0-9]\\d{1}\\.[0-9]\\d{1}";
If the two first digits are '02' OR '03' OR '04'
The mask have to be :
\\([0]\\d{0}\\)[1-9]\\d{0}\\/ [0-9]\\d{2}\\.[0-9]\\d{1}\\.[0-9]\\d{1}"
Have y
VN
Vignesh Nagarajan
Syncfusion Team
July 20, 2023 01:41 PM UTC
Hi Paul Alexandre JANSSENS,
We are able to update the mask at run time using TextChanged event. Please refer to the attached sample and video for your reference.
Could you please share the following details?
- Expected behavior regarding the caret position
- Video demonstrating the issue.
- Code snippets of XAML and C#
- If possible, please share modified sample
Regards,
Vignesh.
Attachment: Sample_and_Output_7b2e45ee.zip
SIGN IN To post a reply.
- 5 Replies
- 5 Participants
-
JA James
- Mar 20, 2015 07:16 PM UTC
- Jul 20, 2023 01:41 PM UTC