WPF TextBox control in VB.NET

In this article, I will discuss how to create a TextBox control in WPF and also I will discussing various properties of the TextBox control.
  • 2202

In this article, I will discuss how to create a TextBox control in WPF and also I will discussing various properties of the TextBox control.

TextBox control

TextBox is the control which accepts user input on a Form.

Properties - This control has the following properties.

txt1.gif 

Figure 1.

Width - Width attributes of the TextBox element represent the width of a TextBox.

Height - Height attributes of the TextBox element represent the height of a TextBox.

Text - Text property of the TextBox element sets the content of a TextBox.

Background - The Background attributes set the background colors of text box.

Foreground - The Foreground attributes set the foreground colors of text box.

TextWrapping - The TextWrapping attributes sets the wrapping of text.

Scrolling Text -  VerticalScrollBarVisibility and HorizontalScrollBarVisibility sets the vertical and horizontal scroll bars visible.

IsReadOnly - IsReadOnly attribute to true makes the text box non editable.

Creating a TextBox in XAML

<TextBox Height="23" HorizontalAlignment="Left" Margin="10,10,0,0" Name="TextBox1"VerticalAlignment="Top" 
Width
="120" Text="" TextWrapping="WrapWithOverflow" />

The Height and Width attributes sets the height and width of text box.

The form looks like this.

txt2.gif 

Figure 2.

Restricting Text Size of a TextBox

The MaxLength property of the TextBox sets the number of characters allowed to input in a text box.

MaxLength="100"

Setting Background and Foreground Colors.

The Background and Foreground attributes set the background and foreground colors of text box. The following code sets background color as red and foreground color as yellow for the text box.

<TextBox Height="23" HorizontalAlignment="Left" Margin="128,90,0,0" Name="TextBox1"VerticalAlignment="Top" 
Width
="180" Text="Rohatash Kumar" TextWrapping="WrapWithOverflow"Background="Crimson" Foreground="Blue" />

The form looks like this.

txt3.gif 

Figure 3.

Wrapping and Scrolling Text:

The TextWrapping attributes sets the wrapping of text and VerticalScrollBarVisibility and HorizontalScrollBarVisibility sets the vertical and horizontal scroll bars visible. 

<TextBox Height="38" HorizontalAlignment="Left" Margin="128,90,0,0" Name="TextBox1"VerticalAlignment="Top"
 Width="180" Text="Rohatash Kumar please enter something in the textbox" TextWrapping="Wrap" Background="Crimson" Foreground="Blue"HorizontalContentAlignment="Center" 
HorizontalScrollBarVisibility
="Auto"VerticalScrollBarVisibility="Visible" />

The form looks like this.

txt4.gif 

Figure 4.

Setting the background image

<TextBox Height="109" HorizontalAlignment="Left" Margin="128,90,0,0" Name="TextBox1"VerticalAlignment="Top"
Width="180" Text="Rohatash Kumar please enter something in the textbox" TextWrapping="Wrap" Foreground="Blue" HorizontalContentAlignment="Center"HorizontalScrollBarVisibility="Auto"
 VerticalScrollBarVisibility="Visible">

            <TextBox.Background>

                <ImageBrush ImageSource="/WpfApplication18;component/Images/flowers-image.jpg" />

            </TextBox.Background>

        </TextBox>

The form looks like this.

txt5.gif 

Figure 5.

Making TextBox as a Masking TextBox

While we take a 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.

XAML code

<Window x:Class="MainWindow"

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

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

    Title="MainWindow" Height="350" Width="525">

    <Grid>

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

        </TextBlock>

 

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

 

        </TextBox>

 

    </Grid>

</Window>

 

Add the following code with the event of TextBox.

Private Sub textBoxValue_PreviewTextInput(ByVal sender As ObjectByVal e AsTextCompositionEventArgs)
        e.Handled = Not TextBoxTextAllowed(e.Text)
    End Sub

    Private Sub textBoxValue_Pasting(ByVal sender As ObjectByVal e AsDataObjectPastingEventArgs)
        If e.DataObject.GetDataPresent(GetType([String])) Then
            Dim Text1 As [String] = DirectCast(e.DataObject.GetData(GetType([String])), [String])
            If Not TextBoxTextAllowed(Text1) Then
                e.CancelCommand()
            End If
        Else
            e.CancelCommand()
        End If
    End Sub

    Private Function TextBoxTextAllowed(ByVal Text2 As [String]) As [Boolean]
        Return Array.TrueForAll(Of [Char])(Text2.ToCharArray(), Function(c As [Char]) [Char].IsDigit(c) OrElse [Char].IsControl(c))
    End Function

 

The form looks like this.


txt6.gif


Figure 6.

 

Now run the application and test it. If user try to type string value in this textbox then he can't type. Permission only to type integer value.

 

txt7.gif 


Figure 7.

Categories

More Articles

© 2020 DotNetHeaven. All rights reserved.