TextBox.MaxLength Property

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Gets or sets the value that determines the maximum number of characters allowed for user input.

Namespace:  System.Windows.Controls
Assembly:  System.Windows (in System.Windows.dll)

Syntax

'Declaration
Public Property MaxLength As Integer
public int MaxLength { get; set; }
<TextBox MaxLength="int"/>

Property Value

Type: System.Int32
The maximum number of characters allowed for user input. The default is 0.

Exceptions

Exception Condition
ArgumentOutOfRangeException

The value set is less than 0.

ArgumentNullException

The value set is nulla null reference (Nothing in Visual Basic).

Remarks

Dependency property identifier field: MaxLengthProperty.

Setting a value of 0 indicates that there is no restriction on the number of characters.

Setting MaxLength only restricts the number of characters a user may input. It does not restrict the programmatic input. If the number of characters programmatically added to the text box is greater than MaxLength, then the user may delete characters, but not add any. Once the number of characters is less than MaxLength, the user may add text again.

It is allowed for the user to undo previous actions and cause the text to exceed the MaxLength.

If the user pastes text into the text box that causes the number of characters to exceed MaxLength, then the last characters in the text box are deleted.

Surrogate characters are treated as one character for the purposes of determining text length.

Examples

The following code snippets show how you can use the MaxLength property in XAML and code.

<StackPanel>
    <TextBox Margin="20,20,0,0" Text="A text box that demonstrates TextWrapping, TextAlignment, MaxLength, and AcceptsReturn" Width="300" Height="50" TextWrapping="Wrap" TextAlignment="Center" MaxLength="500" AcceptsReturn="True" />
    <TextBox Margin="20,20,0,0" Text="A text box that demonstrates HorizontalScrollBarVisibility and VerticalScrollBarVisibility" Width="300" Height="50" AcceptsReturn="True" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" />
</StackPanel>
Public Sub New()
    MyBase.New()
    InitializeComponent()
    CreateControls()
End Sub

Private Sub CreateControls()

    'Create stack panel
    Dim MyStackPanel As StackPanel = New StackPanel

    'Create the first text box
    Dim MyTB1 As TextBox = New TextBox
    MyTB1.Width = 300
    MyTB1.Height = 50
    MyTB1.Text = "A text box that demonstrates TextWrapping, TextAlignment, MaxLength and AcceptsReturn"
    MyTB1.TextWrapping = TextWrapping.Wrap
    MyTB1.TextAlignment = TextAlignment.Center
    MyTB1.MaxLength = 500
    MyTB1.AcceptsReturn = True
    MyTB1.Margin = New Thickness(20, 20, 0, 0)

    'Create the second text box
    Dim MyTB2 As TextBox = New TextBox
    MyTB2.Margin = New Thickness(20, 20, 0, 0)
    MyTB2.Text = "A text box that demonstrates HorizontalScrollBarVisibility and VerticalScrollBarVisibility"
    MyTB2.Width = 300
    MyTB2.Height = 50
    MyTB2.AcceptsReturn = True
    MyTB2.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible
    MyTB2.VerticalScrollBarVisibility = ScrollBarVisibility.Visible

    'Add the text boxes to the stack panel
    MyStackPanel.Children.Add(MyTB1)
    MyStackPanel.Children.Add(MyTB2)
    Me.Content = MyStackPanel
End Sub
public Page()
{
    InitializeComponent();
    CreateControls();
}

private void CreateControls()
{
    //Create stack panel
    StackPanel MyStackPanel = new StackPanel();

    //Create the first text box
    TextBox MyTB1 = new TextBox();
    MyTB1.Width = 300;
    MyTB1.Height = 50;
    MyTB1.Text = "A text box that demonstrates TextWrapping, TextAlignment, MaxLength and AcceptsReturn";
    MyTB1.TextWrapping = TextWrapping.Wrap;
    MyTB1.TextAlignment = TextAlignment.Center;
    MyTB1.MaxLength = 500;
    MyTB1.AcceptsReturn = true;
    MyTB1.Margin = new Thickness(20, 20, 0, 0);

    //Create the second text box
    TextBox MyTB2 = new TextBox();
    MyTB2.Margin = new Thickness(20, 20, 0, 0);
    MyTB2.Text = "A text box that demonstrates HorizontalScrollBarVisibility and VerticalScrollBarVisibility";
    MyTB2.Width = 300;
    MyTB2.Height = 50;
    MyTB2.AcceptsReturn = true;
    MyTB2.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
    MyTB2.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;

    //Add the text boxes to the stack panel
    MyStackPanel.Children.Add(MyTB1);
    MyStackPanel.Children.Add(MyTB2);
    this.Content = MyStackPanel;
}

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.