我正在使用掩码编辑TextBox。文本框始终显示0(零)。我无法从键盘输入任何键。我需要先删除零,然后我可以输入数字。因此,我在这里做了额外的步骤。我可以在键盘输入后立即打字吗?欢迎提出任何建议。
private void DateDay_GotFocus(object sender, RoutedEventArgs e)
{
if (((TextBox)sender).Text == "Day")
((TextBox)sender).Text = string.Empty;
}
private void DateDay_LostFocus(object sender, RoutedEventArgs e)
{
if (((TextBox)sender).Text == string.Empty)
((TextBox)sender).Text = "Day";
else
CheckForCorrectDateDay((TextBox)sender);
}
我尝试使用Focus事件但未成功:
答案 0 :(得分:1)
您需要在GotFocus
事件的文本框中选择所有内容。对于MaskedTextBox控件,它在焦点事件触发后内部处理选择。因此,我们需要BeginInvoke
之后调用SelectAll()
。
private void DateDay_GotFocus(object sender, RoutedEventArgs e)
{
this.BeginInvoke((MethodInvoker)delegate() {
((TextBox)sender).SelectAll();
});
}
这样您就可以直接开始输入。 如果不允许null,则不能使文本为null。
WPF版本:
private void TextBox_GotFocus(object sender, RoutedEventArgs e) {
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate() {
((TextBox)sender).SelectAll();
});
}
答案 1 :(得分:0)
使用Enter Event
为MaskedTextBox提供替代解决方案 private void maskedEdit_Enter(object sender, EventArgs e)
{
MaskedTextBox maskedTextBox = (MaskedTextBox)sender;
maskedTextBox.BeginInvoke
(new Action
(() =>
{
maskedTextBox.SelectAll();
}
)
);
}