Reader Level:
Articles

Masked TextBox In WPF

By Rahul Saxena on May 10, 2010
In this article I am going to show how we can create a masked textbox in wpf.
  • 0
  • 0
  • 40172
Download Files:
 

While taking input from the user it's very necessary that user should type input in correct datatype, mean if integer value required then user should type integer value and if string required then should type string. In WPF I am going to show how we can bound user to do that, by masking textbox.

This is my XAML code:

<Window x:Class="MaskedTextBoxInWPF.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="Masked Text Box In WPF" Height="350" Width="525">

    <Grid>

        <TextBlock Height="23" HorizontalAlignment="Left" Margin="98,80,0,0" Name="textBlock1" Text="Enter Value:" VerticalAlignment="Top" />

        <TextBox Height="23" HorizontalAlignment="Left" Margin="184,80,0,0" Name="textBoxValue" PreviewTextInput="textBoxValue_PreviewTextInput" DataObject.Pasting="textBoxValue_Pasting" VerticalAlignment="Top" Width="120" />

    </Grid>

</Window>

 

Here I use 2 property of TextBox  PreviewTextInput="textBoxValue_PreviewTextInput" DataObject.Pasting="textBoxValue_Pasting". 

This is XAML.cs code:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;

 

namespace MaskedTextBoxInWPF

{

    /// <summary>

    /// Interaction logic for MainWindow.xaml

    /// </summary>

    public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

        }

 

        private void textBoxValue_PreviewTextInput(object sender, TextCompositionEventArgs e)

        {

            e.Handled = !TextBoxTextAllowed(e.Text);

        }

 

        private void textBoxValue_Pasting(object sender, DataObjectPastingEventArgs e)

        {

            if (e.DataObject.GetDataPresent(typeof(String)))

            {

                String Text1 = (String)e.DataObject.GetData(typeof(String));

                if (!TextBoxTextAllowed(Text1)) e.CancelCommand();

            }

            else e.CancelCommand();

        }

 

        private Boolean TextBoxTextAllowed(String Text2)

        {

            return Array.TrueForAll<Char>(Text2.ToCharArray(),

                delegate(Char c) { return Char.IsDigit(c) || Char.IsControl(c); });

        }

 

    }

}

 

When run the application then:


MaskedTextBoxInWPF.JPG

Image 1.

If user try to type string value in this textbox then he/she can't type. Permission only to type int value.

Rahul Saxena

Rahul K Saxena is working as a Technical Analyst in Noida, India. He is Masters in Computers Application.Here in the IT industry for more than 6+ years and his main technical skills include SharePoint 2010, MOSS 2007, C#... Read more

COMMENT USING

Trending up