我正在使用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>
当我在文本框中单击以输入数字时,它总是将光标定位在我单击的位置而不是文本框的开头。这导致用户开始键入数字并快速耗尽房间,因为如果他们点击接近结尾,他们可以输入更少的数字。
问:有没有办法点击框中的任何位置并让光标在前面开始位置?
答案 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;