itlaoli

wpf怎么让Textbox只能输入数字?

只需要两步:

1.禁掉输入法:

<Window x:Class="WpfModelViewApplication1.Views.MainView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:input="clr-namespace:System.Windows.Input;assembly=PresentationCore"
    Title="Main Window" Height="400" Width="800">
        <Grid x:Name="grid1">
            <TextBox x:Name="tb" Width="100" HorizontalAlignment="Right" Margin="0,164,122,128"  input:InputMethod.IsInputMethodEnabled="False"/>
        </Grid>
</Window>
第二步 采用正则表达式:

<Window x:Class="WpfModelViewApplication1.Views.MainView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:input="clr-namespace:System.Windows.Input;assembly=PresentationCore"
    Title="Main Window" Height="400" Width="800">

 <Grid x:Name="grid1">
            <TextBox x:Name="tb" Width="100" HorizontalAlignment="Right" Margin="0,164,122,128" PreviewTextInput="tb_PreviewTextInput" input:InputMethod.IsInputMethodEnabled="False"/>
        </Grid>

</Window>

cs后台代码:

        

//using System.Text.RegularExpressions;

        private void tb_PreviewTextInput(object sender, TextCompositionEventArgs e)

        {

            Regex re = new Regex("[^0-9.-]+");

            e.Handled = re.IsMatch(e.Text);

        }

 

posted @ 2014-12-10 11:16  竹--石  阅读(23362)  评论(1编辑  收藏  举报