C# WPF入门学习主线篇(六)—— TextBox常见属性和事件 ...

打印 上一主题 下一主题

主题 506|帖子 506|积分 1518

接待回到C# WPF入门学习系列的第六篇。在前面的文章中,我们探究了按钮(Button)的事件处置惩罚。今天,我们将继续学习另一个常用的WPF控件——TextBox。本文将介绍 TextBox 的常见属性和事件,并通过示例代码展示如何在实际应用中使用这些功能。
一、TextBox的基础知识

TextBox 是WPF中一个紧张的输入控件,允许用户在应用程序中输入和编辑文本。它常用于表单、搜索框和任何必要文本输入的场景。
TextBox的基本定义

我们先来看看一个简单的 TextBox 定义:
  1. <Window
  2.     x:Class="WpfApp.MainWindow"
  3.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5.     Title="MainWindow" Height="350" Width="525">
  6. <Grid>
  7.     <TextBox x:Name="myTextBox" Width="200" Height="30"
  8.         HorizontalAlignment="Center"
  9.         VerticalAlignment="Center"
  10.         Text="Hello, World!" />
  11. </Grid>
  12. </Window>
复制代码
在这个示例中,我们定义了一个 TextBox 控件,其默认文本为“Hello, World!”。

二、TextBox的常见属性

1. Text

Text 属性用于获取或设置 TextBox 中的文本内容。在上面的示例中,Text="Hello, World!" 设置了 TextBox 的初始文本。

2. Width 和 Height

Width 和 Height 属性用于设置 TextBox 的宽度和高度。例如:
  1. <TextBox Width="200" Height="30" />
复制代码


3. HorizontalAlignment 和 VerticalAlignment

HorizontalAlignment 和 VerticalAlignment 属性用于设置 TextBox 在父容器中的水平和垂直对齐方式。例如:
  1. <TextBox HorizontalAlignment="Center" VerticalAlignment="Center" />
复制代码


4. MaxLength

MaxLength 属性用于设置 TextBox 中允许输入的最大字符数。例如:
  1. <TextBox MaxLength="100" />
复制代码
5. IsReadOnly

IsReadOnly 属性用于设置 TextBox 是否为只读。例如:
  1. <TextBox IsReadOnly="True" />
复制代码
示例

下面是一个包含以上常见属性的完备示例:
  1. <TextBox
  2. x:Name="myTextBox" Width="200" Height="30"
  3. HorizontalAlignment="Center" VerticalAlignment="Center"
  4. Text="Hello, World!"
  5. MaxLength="100"
  6. IsReadOnly="False"
  7. />
复制代码
三、TextBox的常见事件

TextBox 支持多种事件,用于处置惩罚用户输入和交互。我们来看看一些常见的事件及其用法。
1. TextChanged

TextChanged 事件在 TextBox 的文本内容发生变化时触发。我们可以在背景代码中处置惩罚这个事件:
  1. <TextBox
  2. x:Name="myTextBox" Width="200" Height="30"
  3. HorizontalAlignment="Center" VerticalAlignment="Center"
  4. TextChanged="MyTextBox_TextChanged"
  5. />
复制代码
背景代码

  1. private void MyTextBox_TextChanged(object sender, TextChangedEventArgs e) {
  2. MessageBox.Show($"Text changed: {myTextBox.Text}");
  3. }
复制代码
2. GotFocus 和 LostFocus

GotFocus 事件在 TextBox 得到焦点时触发,LostFocus 事件在 TextBox 失去焦点时触发。
XAML代码

  1. <TextBox
  2. x:Name="myTextBox" Width="200" Height="30"
  3. HorizontalAlignment="Center" VerticalAlignment="Center"
  4. GotFocus="MyTextBox_GotFocus" LostFocus="MyTextBox_LostFocus"
  5. />
复制代码
背景代码

  1. private void MyTextBox_GotFocus(object sender, RoutedEventArgs e) {
  2. myTextBox.Background = new SolidColorBrush(Colors.LightYellow);
  3. }
  4. private void MyTextBox_LostFocus(object sender, RoutedEventArgs e) {
  5. myTextBox.Background = new SolidColorBrush(Colors.White);
  6. }
复制代码
3. KeyDown 和 KeyUp

KeyDown 事件在用户按下键盘键时触发,KeyUp 事件在用户释放键盘键时触发。
XAML代码

  1. <TextBox
  2. x:Name="myTextBox" Width="200" Height="30"
  3. HorizontalAlignment="Center" VerticalAlignment="Center"
  4. KeyDown="MyTextBox_KeyDown" KeyUp="MyTextBox_KeyUp"
  5. />
复制代码
背景代码

  1. private void MyTextBox_KeyDown(object sender, KeyEventArgs e) {
  2. if (e.Key == Key.Enter) { MessageBox.Show("Enter key pressed!");
  3. }
  4. }
  5. private void MyTextBox_KeyUp(object sender, KeyEventArgs e) {
  6. // 处理键盘释放事件
  7. }
复制代码
4. PreviewTextInput

PreviewTextInput 事件在文本输入之前触发,通常用于自定义输入验证。
XAML代码

  1. <TextBox
  2. x:Name="myTextBox" Width="200" Height="30"
  3. HorizontalAlignment="Center" VerticalAlignment="Center" PreviewTextInput="MyTextBox_PreviewTextInput"
  4. />
复制代码
背景代码

  1. private void MyTextBox_PreviewTextInput(object sender, TextCompositionEventArgs e) {
  2. // 只允许输入数字 e.Handled = !IsTextAllowed(e.Text);
  3. }
  4. private static bool IsTextAllowed(string text) {
  5. return text.All(char.IsDigit);
  6. }
复制代码
四、总结

在本篇博客中,我们具体介绍了 WPF 中 TextBox 控件的常见属性和事件。通过这些示例代码,你可以相识如何设置 TextBox 的外观和举动,并且能够处置惩罚用户的输入和交互。这些知识对于创建丰富和互动的用户界面至关紧张。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万万哇

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表