DatePicker no允许的字符

时间:2017-02-28 11:46:48

标签: wpf vb.net visual-studio

简短问题,是否可以禁用DataPicker中的字符输入,以便允许用户输入数字和点和斜杠?

亲切的问候

2 个答案:

答案 0 :(得分:0)

你将不得不自己做:

<TextBox PreviewTextInput="TextBox_PreviewTextInput"/>

private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    if(!is_number(e.Text) && !is_dot(e.Text) && ...)
    {
        e.Handled = true;
    }
}

设置e.Handled = true会拦截事件并阻止操作发生 我建议使用正则表达式而不是is_number等...(我确信有很多正则表达式的例子)。

请注意,这不适用于空格键,您必须使用previewkeydown事件,并且可能有一些其他键未在PreviewTextInput中处理,并且会修改您的文本,但我想不出任何。

编辑:

我刚看到你使用VB,我发布的代码是C#,我不知道任何VB,但我想它不应该那么不同。

答案 1 :(得分:0)

您可以处理PreviewTextInput这样的DatePicker事件:

<DatePicker x:Name="dp" PreviewTextInput="DatePicker_TextChanged" />
Private Sub DatePicker_TextChanged(sender As Object, e As TextCompositionEventArgs)
    If Not (Microsoft.VisualBasic.Information.IsNumeric(e.Text) Or e.Text = "." Or e.Text = "/" Or e.Text = "\") Then
        e.Handled = True
    End If
End Sub
  

无论如何都要在Code背后执行此操作吗?

不确定。试试这个:

AddHandler dp.PreviewTextInput, AddressOf DatePicker_TextChanged