WPF(6)WPF之TextBox控件

发布时间:2025-12-09 19:26:06 浏览次数:4

系列文章目录

WPF(1)WPF工程创建
WPF(2)WPF之Image组件
WPF(3)WPF之Button组件
WPF(5)WPF之DataGrid控件


文章目录

  • 系列文章目录
  • TextBox控件的基本使用
  • 一、什么是TextBox?
  • 二、TextBox的使用
    • 1.单行TextBox
    • 2.Text属性前台与后台的运行时机
    • 3.多行文本框
      • 3.1 换行属性AcceptsReturn
  • 总结

TextBox控件的基本使用


一、什么是TextBox?

TextBox控件是WPF的文本输入控件,使用户输入录入系统数据的入口之一。有了此控件,用户可以将数据按照软件的流程录入进去。它允许用户输入一行或多行数据。

二、TextBox的使用

1.单行TextBox

最简单的使用方法如下:

<Window x:Class="WPF006_TextBox.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WPF006_TextBox"mc:Ignorable="d"Title="MainWindow" Height="600" Width="400"><StackPanel Margin="10"><TextBox/></StackPanel></Window>

效果如下:


如果想要在TextBox控件中预先设定文本的话需要结合TextBox的Text属性

在后台程序中,也可以通过此属性做控件内容上的获取及设置。

2.Text属性前台与后台的运行时机

当xaml文档中设置了Text属性的值,后台通过代码动态设置Text属性会先执行哪一个呢?

前台代码如下:

<Window x:Class="WPF006_TextBox.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WPF006_TextBox"mc:Ignorable="d"Title="MainWindow" Height="300" Width="400"><StackPanel Margin="10"><TextBox Name="MyTextBox" Text="你好,TextBox!"/></StackPanel></Window>

后台代码如下:

using System.Windows;namespace WPF006_TextBox{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();this.MyTextBox.Text = "这是修改后的!";}}}

运行的结果如下:

结果显示如上图,结合之前的内容,我们可以知道。最后执行了后台的代码。原因是

InitializeComponent();

InitializeComponent();方法会初始化组件,在xaml中设置的Text的值也执行过,只不过被后来的后台代码

this.MyTextBox.Text = "这是修改后的!";

覆盖过了而已。
当我们把以上两行代码互换位置如下:

后台代码:

using System.Windows;namespace WPF006_TextBox{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){this.MyTextBox.Text = "这是修改后的!";InitializeComponent();}}}

效果如下:


就会引发异常,原因是初始化函数并未完成,此时this.MyTextBox还不存在,因此是空指针异常。
所以我们所有的使用控件的逻辑都要放在初始化函数之后调用。

3.多行文本框

在很多是时候程序需要用户输入大量文字,使用单行的TextBox就有点捉襟见肘了。那么我们就希望有一个控件能拥有这样的能力。而TextBox恰恰也具备这种能力,而且非常简单。

前台代码如下:
后台代码不变

<Window x:Class="WPF006_TextBox.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WPF006_TextBox"mc:Ignorable="d"Title="MainWindow" Height="300" Width="400"><StackPanel Margin="10"><TextBox Name="MyTextBox" Text="你好,TextBox!"/><TextBox TextWrapping="Wrap"/></StackPanel></Window>

效果如下:

前台代码如下:
后台代码不变

<Window x:Class="WPF006_TextBox.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WPF006_TextBox"mc:Ignorable="d"Title="MainWindow" Height="300" Width="400"><StackPanel Margin="10"><TextBox Name="MyTextBox" Text="你好,TextBox!"/><TextBox TextWrapping="Wrap"/></StackPanel></Window>

3.1 换行属性AcceptsReturn

当我们希望文字换行时,我们可以在添加一个属性–AcceptsReturn
该属性默认值是false,表示不接受换行
当属性值设置True时,在光标处按下Enter键即可换行

前台代码:

<Window x:Class="WPF006_TextBox.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WPF006_TextBox"mc:Ignorable="d"Title="MainWindow" Height="300" Width="400"><StackPanel Margin="10"><TextBox Name="MyTextBox" Text="你好,TextBox!"/><TextBox AcceptsReturn="True" TextWrapping="Wrap"/></StackPanel></Window>

效果如图:


总结

好了,本篇文章在不在啰嗦了!如果您感觉OK记得点赞、关注、转发!谢谢!
以上就是今天要讲的有关TextBox控件的内容,若有不足,望大佬能够给予批评与修正!

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477