4.1 TextBox控件
TextBox(文本框)控件是在应用程序中经常要用到的控件之一,主要用来接收用户输入的文本或显示文本,实现用户与程序的交互。
4.1.1 TextBox控件简介
TextBox控件通常用于可编辑文本,不过也可使其成为只读控件。文本框可以显示多个行,对文本换行使其符合控件的大小以及添加基本的格式设置。TextBox控件为在该控件中显示的或输入的文本提供单个格式化样式。若要显示多种类型的带格式文本,可使用RichTextBox控件。
控件显示的文本包含在Text属性中。默认情况下,最多可在一个文本框中输入2048个字符。如果将MultiLine属性设置为True,则最多可输入32 KB的文本。Text属性可以在设计时使用“属性”窗口设置,在运行时用代码设置,或者在运行时通过用户输入来设置。可以在运行时通过读取Text属性来检索文本框的当前内容。下面就来看一下TextBox控件的常见用法。
4.1.2 设置文本框的文本
文本框中的文本内容是通过它的Text属性来设置的,它的Text属性就是用来获取或设置文本框中的当前文本。通过读Text属性能在运行时检索TextBox的当前内容。
默认情况下,Windows窗体TextBox控件显示单行文本,并且不显示滚动条。如果文本长度超过了可用的空间,则只有一部分文本可见。可以通过将MultiLine属性、WordWrap属性和ScrollBars属性设置为适当的值来更改默认行为。
(1)将MultiLine属性设置为True,可以使TextBox在运行时接收或显示多行文本。如果WordWrap为True(默认),则控件中的文本将显示为一个或多个段落;否则它将显示为一个列表,其中的某些行可能在控件边缘处被剪裁。
(2)ScrollBars属性可设置为表4-3中的值。
表4-3 ScrollBars属性值
ScrollBars属性的默认值为None,即不显示任何滚动条。
(3)WordWrap属性可设置为表4-4中的值。
表4-4 WordWrap属性值
自动按字换行省去用户在行尾插入换行符的麻烦。当一行文本已超过TextBox所能显示的长度时,它会自动将文本折回到下一行显示。在设计时,不能在“属性”窗口输入换行符。在过程中,可以通过插入一个回车加上换行符(ANSI字符13和0)来产生一个行断点。
注意
如果将MultiLine属性设为False,则文本框的宽度就无法改变了,这个宽度由字体的大小决定。
4.1.3 创建密码文本框
密码框是一个文本框的特殊却常用的形式,它允许在用户键入字符串时显示星号之类的占位符。VB.NET 2005提供PasswordChar和MaxLengh这两个文本框属性,大大简化了密码文本框的创建。
(1)将TextBox控件的PasswordChar属性设置为某个特定字符。
PasswordChar属性指定在文本框中显示的字符。例如,如果希望在密码框中显示星号,则可在“属性”窗口中将PasswordChar属性指定为“*”,如图4-1所示,则在运行的时候,无论用户在文本框中输入什么字符,文本框中都显示星号。
图4-1 文本框的PasswordChar属性
(2)设置MaxLength属性(可选)。此属性确定可在文本框中键入多少字符。如果超过了最大长度,系统会发出声响,且文本框不再接收任何字符。示例如下:
Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load
' 设置空文本
TextBox1.Text = ""
' 设置TextBox1文本框为密码文本框
TextBox1.PasswordChar = "*"
' 设置文本框可键入的最大字符数
TextBox1.MaxLength = 14
End Sub
4.1.4 创建只读文本框
有时编程人员不希望文本框内容被用户编辑,这时可以将文本框转换成只读控件。即将TextBox控件的ReadOnly属性设置为True。将此属性设置为True后,用户仍可滚动并突出显示文本框中的文本,但不允许进行更改。“复制”命令在文本框中仍然起作用,但“剪切”和“粘贴”命令均无效。
注意
ReadOnly属性仅在运行时影响“用户交互”。编程人员仍可以在运行时通过更改文本框的Text属性,或者以编程方式更改文本框的内容。
4.1.5 以编程方式选择文本
在Windows窗体TextBox控件中,可以以编程方式选择文本。例如,如果创建一个可在文本中搜索特定字符串的函数,就可以选择TextBox文本,将找到的字符串的位置醒目地显示给用户。
(1)将SelectionStart属性设置为要选择的文本的开始位置。
SelectionStart属性是一个数字,指示文本字符串内的插入点,值为0表示最左边的位置。如果将SelectionStart属性设置为等于或大于文本框内的字符数的值,则插入点被放在最后一个字符后。
(2)将SelectionLength属性设置为要选择的文本的长度。
SelectionLength属性是一个设置插入点宽度的数值。如果将SelectionLength设置为大于0的数,则会选择该数目的字符,开始位置是当前插入点。
(3)(可选)通过SelectedText属性访问选定的文本。