Xceed MaskedTextBox在聚焦时不会从头开始

时间:2015-01-23 18:37:06

标签: javascript jquery wpf maskedtextbox xceed

我正在使用Xceed MaskedTextBox;

<xctk:MaskedTextBox Mask="000-000-0000" x:Name="PhoneTextBox">
     <xctk:MaskedTextBox.Style>
       <xctk:MaskedTextBox.Style>
           <Style.Triggers>
              <MultiTrigger>
                 <MultiTrigger.Conditions>
                   <Condition Property="Text" Value="___-___-____"/>
                 </MultiTrigger.conditions>
              </MultiTrigger>
            </Style.Triggers>
       </xctk:MaskedTextBox.Style>

当我在文本框中单击以输入数字时,它总是将光标定位在我单击的位置而不是文本框的开头。这导致用户开始键入数字并快速耗尽房间,因为如果他们点击接近结尾,他们可以输入更少的数字。

问:有没有办法点击框中的任何位置并让光标在前面开始位置?

2 个答案:

答案 0 :(得分:1)

这样的事情对你有用;在标记中:

<xctk:MaskedTextBox x:Name="MyMaskedTextBox"  Mask="(000) 000-000" PreviewMouseDown="MyMaskedTextBox_PreviewMouseDown"></xctk:MaskedTextBox>

事件处理程序:

private void MyMaskedTextBox_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
    MyMaskedTextBox.Focus();
    MyMaskedTextBox.Select(1, 0);
    e.Handled = true;            
}

在对Select的调用中,根据您的掩码传递光标所在的索引。

答案 1 :(得分:0)

挑选Gary Wright的答案。如何在masktextbox中的最后一个字符上定位

int startPos = MaskTextbox1.MaskedTextProvider.FindUnassignedEditPositionFrom(MaskTextbox1.MaskedTextProvider.LastAssignedPosition + 1, true);
MaskTextbox1.Focus();
MaskTextbox1.Select(startPos, 0);
e.Handled = true;