2024年5月11日发(作者:)

C# TextBox控件

在希望用户输入程序员在设计阶段不知道的文本(如用户的姓名)时,应使用

文本框。文本框的主要用途是让输入文本,用户可以输入任何字符,也可以限制用

户只输入数值。

.NET Framework内置了两个基本控件来提取用户输入的文本:TextBox和

RichTextBox。这两个控件都派生于基类TextBoxBase派生于Control。

TextBoxBase提供了在文本框中处理文本的基本功能,例如选择文本、剪切和

从剪切板上粘贴,以及许多事件。这里不讨论什么对象派生于什么类,而是先介绍

两个控件中比较简单的一个:TextBox。

如本章前面所述,列出控件的所有属性是不可能的,所以这里仅列出最常见的

属性,如表8-5所示。

表8-5 TextBox控件的属性

属性

CausesValidation

说明

当控件的该属性设置为true,且该控件获得焦点时,将会触发Validating

事件和Validated事件。通过这两个事件可以验证失去焦点的控件中数据

的有效性。

CharacterCasing 该属性用于设置TextBox控件是否会改变输入的大小写。可以取值如下

所示:

(1)Lower 文本框中输入的所有文本都转换为小写

(2)Normal 不对文本框内容进行任何转换

(3)Upper 文本框中输入的所有文本都转换为大写

MaxLength

Multiline

PasswordChar

ReadOnly

ScrollBars

SelectedText

SelectionLenth

SelectionStart

WordWrap

该属性用于设置能输入到TextBox中字符的数量。如果这个属性值设置

为0,表示最大字符长度仅限于可用的内存

该属性用于设置该控件是否是一个多行控件。如果该属性值设置为true,

那么用户可以输入多行文本信息

该属性用于设置使用密码字符替换在单行文本框中输入的字符。如果

Multiline属性为true,该属性将不起作用

该属性用于设置文本框是否为只读

该属性用于设置指定为多行文本框时是否显示滚动条

该属性用于设置在文本框中选择的文本

该属性用于设置在文本中选择的字符数。如果这个值设置得比文本中总

字符数大,则控件会把它重新设置为字符总数减去SelectionStart的值

该属性用于设置文本框中被选中文本的开头

该属性用于设置在多行文本框中,如果一行的宽度超出了控件的宽度,

其文本是否应自动换行

除了上表中的属性外,TextBox控件还继承了命名空间

中Control类的各种属性和事件。根据TextBox控件的特点,可以将其继承的事件

分为三大类,如表8-6所示。

表8-6 TextBox控件的事件

事件

Enter、GetFocus、

Leave、Validating、

Validated、LostFocus

KeyUp

TextChanged、

TextAlignChanged、

SizeChanged、

StyleChanged、

ParentChanged等

说明

这6个事件按照列出的顺序触发,它们统称为“焦点事件”,当控件的焦

点发生改变时触发,但Validating和Validated事件例外,它们仅在控件

获得了焦点,且其CausesValidation属性设置为true时触发。

KeyDown、KeyPress、这3个事件称为“键事件”。它们可以监视和改变输入到控件中的内容,

KeyDown和KeyUp获取与按下键对应的键码,这样就可以确定用户是

否按下了键Shift、Ctrl或F1

这些事件可以称为“改变事件”,因为只要文本框的文本信息,以及它的

属性或其他相关控件,无论发生什么改变,都有可能触发这些改变事件。

其中TextChanged事件是比较常用的事件