简短的问题,是否可以在数据键盘中禁用字符条目,以便允许用户输入数字,点和斜线?
善意
您可以处理 DatePicker
的PreviewTextInput
事件:
<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
无论如何是否可以在代码后面执行此操作?
当然。尝试以下操作:
AddHandler dp.PreviewTextInput, AddressOf DatePicker_TextChanged
您必须自己做:
<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中使用其他一些键,并且会修改您的文本,但我无法想到任何。H3>编辑:
我刚刚看到您使用VB,我发布的代码是用于C#的,我不知道任何VB,但我认为这应该没有什么不同。