简短问题,是否可以禁用DataPicker中的字符输入,以便允许用户输入数字和点和斜杠?
亲切的问候
答案 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