【愚公系列】2023年09月 Winform控件专题 TextBox控件详解


前言

Winform控件是Windows Forms中的用户界面元素,它们可以用于创建Windows应用程序的各种视觉和交互组件,例如按钮、标签、文本框、下拉列表框、复选框、单选框、进度条等。开发人员可以使用Winform控件来构建用户界面并响应用户的操作行为,从而创建功能强大的桌面应用程序。

一、TextBox控件详解

1.属性介绍

1.1 AcceptsReturn和AcceptsTab

AcceptsReturn和AcceptsTab是Winform中TextBox控件的两个属性。

  1. AcceptsReturn属性

AcceptsReturn属性用于指定是否允许在文本框中输入回车符(Enter键)。默认情况下,当用户按下回车键时,文本框会将焦点移动到下一个控件,而不是在文本框中插入回车符。如果要允许在文本框中输入回车符,则将AcceptsReturn属性设置为true。

示例代码:

textBox1.AcceptsReturn = true;
  1. AcceptsTab属性

AcceptsTab属性用于指定是否允许在文本框中输入制表符(Tab键)。默认情况下,当用户按下Tab键时,文本框会将焦点移动到下一个控件,而不是在文本框中插入制表符。如果要允许在文本框中输入制表符,则将AcceptsTab属性设置为true。

示例代码:

textBox1.AcceptsTab = true;

1.2 CharacterCasing

CharacterCasing属性用于设置Winform中TextBox控件中输入的字符大小写形式。它可以设置为以下三种值之一:

  1. Upper:强制将所有输入转换为大写形式。
  2. Lower:强制将所有输入转换为小写形式。
  3. Normal(默认值):不更改文本的大小写形式。

使用代码设置CharacterCasing属性:

在设计时,您可以通过以下步骤设置CharacterCasing属性:

  1. 在Visual Studio中打开你的Form。
  2. 将一个TextBox控件拖放到你的Form中。
  3. 在属性面板中,找到CharacterCasing属性,从下拉列表中选择你需要的选项。

在运行时,您可以通过以下代码设置CharacterCasing属性:

textBox1.CharacterCasing = CharacterCasing.Upper; //将输入转换为大写形式
textBox1.CharacterCasing = CharacterCasing.Lower; //将输入转换为小写形式
textBox1.CharacterCasing = CharacterCasing.Normal; //不更改文本大小写形式

在用户输入数据时,TextBox控件将自动将输入文本转换为所选大小写形式。

1.3 HideSelection

HideSelection属性是WinForms中的一个控件属性,它指定当控件失去焦点时是否隐藏所选文本。HideSelection属性只对可编辑的控件(如文本框、组合框等)有效,对于只读控件(如标签、按钮等)无效。

当HideSelection属性设置为true时,当控件失去焦点时,文本框中的所选文本将不再被高亮显示,而是和其他文本一样显示。这种情况下,虽然看起来还是选中状态,但是如果尝试复制文本,只会复制整个文本而不是选中的文本。

当HideSelection属性设置为false时,无论控件是否获得焦点,所选文本都将以高亮显示的形式呈现。在这种情况下,即使失去焦点,选中文本仍然可见和可复制。

要在代码中设置HideSelection属性,可以使用以下语句:

textBox1.HideSelection = true; // 隐藏选中文本

textBox1.HideSelection = false; // 显示选中文本

当然,还可以在属性面板中通过属性窗格来设置HideSelection属性。
在这里插入图片描述

1.4 MaxLength和Multiline

MaxLength属性:

MaxLength属性用于限制文本框可输入的最大字符数。在Winform中,MaxLength属性可以设置为正整数或无限制(-1)。以下是使用MaxLength属性的示例代码:

// 设置最大字符数为10
textBox1.MaxLength = 10;

Multiline属性:

Multiline属性用于将文本框设置为多行文本框。当Multiline属性设置为true时,文本框可以输入多行文本。以下是使用Multiline属性的示例代码:

// 将文本框设置为多行文本框
textBox1.Multiline = true;

需要注意的是,当设置Multiline属性为true时,文本框的Height属性需要手动调整以适应多行文本。

1.5 SelectedText和SelectionLength和SelectionStart

在Winform中,TextBox、RichTextBox、ComboBox等控件都存在SelectedText、SelectionLength和SelectionStart属性。

  1. SelectedText属性
    SelectedText属性可以用于获取或设置控件中选定的文本。例如:
textBox1.SelectedText = "Hello World";
string selectedText = textBox1.SelectedText;

这里将在textBox1控件中选定文本并将其设置为"Hello World",然后将选定的文本赋值给selectedText变量。

  1. SelectionLength属性
    SelectionLength属性表示在控件中选定的文本的长度。例如:
int length = textBox1.SelectionLength;

这里将获取textBox1控件中选定文本的长度,将其赋值给length变量。

  1. SelectionStart属性
    SelectionStart属性表示在控件中选定文本的起始位置。例如:
int start = textBox1.SelectionStart;

这里将获取textBox1控件中选定文本的起始位置,将其赋值给start变量。

注意:SelectedText、SelectionLength和SelectionStart属性都只适用于那些允许用户编辑并选定文本的控件。如果控件不允许用户选定和编辑文本,那么这些属性都将无效。

1.6 PasswordChar和ReadOnly

在Winform中,PasswordChar和ReadOnly是两个常用属性。

PasswordChar属性用于设置文本框控件中输入字符的显示方式。它接受一个字符类型的值,通常是*或·之类的字符。当用户在文本框中输入字符时,实际上输入的是文本框内部的字符,但是显示的字符会被替换成PasswordChar属性指定的字符。这个属性通常用于密码输入框等场合。

下面是一个使用PasswordChar属性的示例:

textBox1.PasswordChar = '*';
textBox1.UseSystemPasswordChar = true;

在上面的示例中,将文本框textBox1的PasswordChar属性设置为*,并将UseSystemPasswordChar属性设置为true,这将使文本框显示系统默认的密码字符。当用户在文本框中输入字符时,系统会自动将它们替换为*。

ReadOnly属性用于设置文本框控件是否为只读状态。如果将ReadOnly属性设置为true,则用户不能在文本框中输入任何字符,但是可以复制和粘贴文本框中的内容。如果将ReadOnly属性设置为false,则用户可以在文本框中输入和编辑内容。

下面是一个使用ReadOnly属性的示例:

textBox1.ReadOnly = true;

在上面的示例中,将文本框textBox1的ReadOnly属性设置为true,这将使文本框变为只读状态。用户无法在文本框中输入或编辑任何内容。

1.7 ShortcutsEnabled

ShortcutsEnabled属性是Winform中设置快捷键是否开启的属性,其类型为bool。

如果将该属性设置为true,则用户可以使用快捷键来执行特定的操作,如Ctrl+C用于复制、Ctrl+V用于粘贴等。

如果将该属性设置为false,则所有的快捷键都将被禁用。

示例代码:

this.ShortcutsEnabled = true; // 开启快捷键功能
this.ShortcutsEnabled = false; // 禁用快捷键功能

1.8 UseSystemPasswordChar

UseSystemPasswordChar属性是窗体控件TextBox的一个属性,用于指示是否使用操作系统默认的密码字符掩盖输入内容。

当UseSystemPasswordChar设置为true时,输入框中的字符将被替换为系统默认的密码字符,通常是“*”或“•”。当设置为false时,输入框中的字符将以普通字符的形式显示。

以下是使用UseSystemPasswordChar属性的示例:

// 创建一个密码输入框
TextBox passwordBox = new TextBox();
passwordBox.UseSystemPasswordChar = true;

在上面的示例中,创建了一个TextBox控件并将UseSystemPasswordChar设置为true,这将导致用户输入的密码字符被替换为系统默认的密码字符。

1.9 WordWrap

WordWrap属性是在Winform的TextBox控件中使用的。

该属性将文本框中的文本自动换行,以适应文本框的宽度。如果该属性设置为True,则当文本框中的文本超出文本框的宽度时,文本将自动换行。如果该属性设置为False,则文本将在单行上显示,并且任何超出文本框的部分将被隐藏。

在Design视图中,您可以在Properties窗口中找到WordWrap属性并将其设置为True或False。或者您可以在代码中使用以下代码设置它:

textBox1.WordWrap = true; // 自动换行
textBox1.WordWrap = false; // 单行显示

1.10 Lines

WinForm中的Lines属性是TextBox控件中的一个属性,它用于设置文本框中的多行文本。

使用Lines属性非常简单,只需要将文本框的Multiline属性设置为true,然后在Lines属性中输入多行文本即可,如下所示:

textBox1.Multiline = true;
textBox1.Lines = new string[] {
    
     "第一行", "第二行", "第三行" };

这样就可以在文本框中显示多行文本了。需要注意的是,Lines属性中的每一行文本都应该是一个字符串数组的元素,每个元素代表一行文本。如果要设置某一行的文本,只需要修改对应的元素即可。

此外,也可以通过代码动态地添加或删除文本框中的行,如下所示:

// 添加一行文本
textBox1.AppendText("新的一行\n");

// 删除最后一行文本
string[] lines = textBox1.Lines;
Array.Resize(ref lines, lines.Length - 1);
textBox1.Lines = lines;

1.11 textalign

Winform中的TextAlign属性是用来控制文本对齐方式的,可以设置为左对齐、右对齐、居中对齐等。

在Visual Studio的设计器中,选择控件后,在属性窗口中找到TextAlign属性,可以通过下拉列表选择对齐方式。

同时,也可以通过代码设置TextAlign属性,比如:

// 设置label的文本为居中对齐
label1.TextAlign = ContentAlignment.MiddleCenter;

除了常见的左对齐、右对齐、居中对齐外,TextAlign属性还支持如下的对齐方式:

  • ContentAlignment.BottomCenter:底部居中对齐
  • ContentAlignment.BottomLeft:底部左对齐
  • ContentAlignment.BottomRight:底部右对齐
  • ContentAlignment.MiddleCenter:居中对齐
  • ContentAlignment.MiddleLeft:左对齐
  • ContentAlignment.MiddleRight:右对齐
  • ContentAlignment.TopCenter:顶部居中对齐
  • ContentAlignment.TopLeft:顶部左对齐
  • ContentAlignment.TopRight:顶部右对齐

在实际开发中,TextAlign属性通常被用于控制Label、TextBox等控件中文本的对齐方式。

1.12 AutoCompleteCustomSource 、AutoCompleteMode 、AutoCompleteSource

AutoCompleteCustomSource: 这个属性允许我们为一个文本框定义一个自定义的自动完成列表,我们可以在这个列表中添加需要自动完成的内容。我们可以使用一个字符串数组或者是一个StringCollection对象来为这个属性设置值。

AutoCompleteMode: 这个属性用于指定自动完成模式,有两种值可以设置:

  • None: 表示不启用自动完成功能。
  • SuggestAppend: 表示启用自动完成功能并且在用户输入时弹出一个下拉框,显示与当前输入匹配的内容。当用户从下拉框中选择一个项时,这个项的内容自动添加到文本框中。

AutoCompleteSource: 这个属性指定了自动完成的来源。它可以设置为以下几个值:

  • FileSystem: 根据文件系统中的文件夹和文件来匹配。
  • HistoryList: 根据用户以前输入的历史记录来匹配。
  • RecentlyUsedList: 根据用户最近使用的文件来匹配。
  • CustomSource: 使用我们自己定义的自动完成列表来匹配。
  • AllSystemSources: 包括所有系统提供的自动完成来源。

示例代码:

//设置AutoCompleteCustomSource
string[] autoSource = new string[] {
    
     "apple", "banana", "cherry", "orange", "peach" };
textBox1.AutoCompleteCustomSource.AddRange(autoSource);

//设置AutoCompleteMode
textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;

//设置AutoCompleteSource
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;

在这里插入图片描述

2.常用场景

TextBox控件是Winform中常用的用户输入控件,常用场景包括:

  1. 用户输入:将TextBox控件放置在窗体上,用户可以在其中输入文字、数字或符号。

  2. 数据展示:将TextBox控件绑定到数据源,以显示数据。例如,将TextBox控件绑定到数据库中的某个字段,以显示该字段的值。

  3. 搜索:将TextBox控件作为搜索框,用户可以在其中输入关键字,搜索框下方显示搜索结果。

  4. 文本编辑:将TextBox控件作为文本编辑器,用户可以在其中编辑文本,包括格式、字体、大小等。

  5. 密码输入:将TextBox控件的PasswordChar属性设置为“*”,以实现密码输入功能。

  6. 只读显示:将TextBox控件的ReadOnly属性设置为“True”,以实现只读显示功能,用户不能编辑该文本框中的内容。

  7. 自动完成:将TextBox控件的AutoCompleteMode属性设置为“Suggest”或“Append”,以实现自动完成输入功能。

3.具体案例

以下是一个简单的Winform项目,演示如何使用TextBox控件:

  1. 创建一个新的Winform项目。
  2. 在窗体上添加一个TextBox控件。
  3. 在窗体上添加一个Button控件。
  4. 双击Button控件,打开窗体的代码视图。
  5. 在Button的Click事件中,添加以下代码:
private void button1_Click(object sender, EventArgs e)
{
    
    
    string text = textBox1.Text;
    MessageBox.Show("您输入的文本是:" + text);
}

这段代码获取TextBox控件中的文本,然后将其显示在一个MessageBox中。

  1. 运行程序,并在TextBox中输入一些文本。
  2. 点击Button按钮,会弹出一个MessageBox,显示您输入的文本。

这只是一个简单的例子,您可以根据您的具体需求来使用TextBox控件。例如,您可以将其与其他控件一起使用,来创建更为复杂的用户界面。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/aa2528877987/article/details/132618516