TextBox 是一种通用控件,可以由用户输入文本或显示文本。除非把 TextBox 的 Locked 属性设为 True,否则不能用 TextBox 显示不希望用户更改的文本。
TextBox 中显示的实际文本是受 Text 属性控制的。Text 属性可以用三种方式设置:设计时在“属性”窗口进行、运行时通过代码置或在运行时由用户输入。通过读 Text 属性能在运行时检索 TextBox 的当前内容。
TextBox 在缺省情况下只显示单行文本,且不显示 ScrollBar。如果文本长度超过可用空间,则只能显示部分文本。通过设置 MultiLine 和 ScrollBars 两种属性(只能在设计程序时设置),可以改变 TextBox 的外观和行为。
注意 不要把 ScrollBars 属性与 ScrollBar 控件混淆,ScrollBar 控件并不属于 TextBox,它具有自己的属性集。
把 MultiLine 属性设为 True,可以使 TextBox 在运行时接受或显示多行文本。只要没有水平方向 ScrollBar,多行 TextBox 中的文本会自动按字换行。ScrollBars 属性的缺省值被设置为 0(None)。自动按字换行省去用户在行尾插入换行符的麻烦。当一行文本已超过所能显示的长度时,TextBox 自动将文本折回到下一行显示。
在设计时,不能在“属性”窗口输入换行符。在过程中,可以通过插入一个回车加上换行符(ANSI 字符 13 和 0)来产生一个行断点。也可以用常量 vbCrLf 插入一个回车与换行符组合。例如,下面的事件过程是在加载窗体时,把两行文本放入一个多行 TextBox (Text1) 中的示例。
Sub Form_Load ()
Text1.Text = "Here are two lines" _
& vbCrLf & "in a text box"
End Sub
利用 TextBox 的 SelStart、SelLength 和 SelText 属性,可以控制 TextBox 的插入点和选择行为。这些属性仅能在运行时使用。
当一个 TextBox 首次得到焦点时,TextBox 缺省的插入点和光标位置在文本的最左边。用户可以用键盘和鼠标移动它们。当 TextBox 失去焦点而后再得到时,插入点位置与用户最后设置的位置一样。
在有些情况下,它可能与用户设置不一致。如:在字处理应用程序中,用户会希望新字符出现在已有文本后面;在数据项应用程序中,用户会希望他的输入替换原有条目。使用 SelStart 和 SelLength 属性,用户可以根据需要改变 TextBox 的行为。
SelStart 属性是一个数字,指示文本串内的插入点,其中 0 表示最左边的位置。如果 SelStart 属性值大于或等于文本中的字符数,那么插入点将被放在最后一个字符之后,如图 3.7 所示。该例子的工作版,请参阅应用程序示例 Controls.vbp 中的 Text.frm。
图 3.7 插入点示例
SelLength 属性是一个设置插入点宽度的数值。把 SelLength 设为大于 0 的值,会选中并突出显示从当前插入点开始的 SelLength 个字符。图 3.8 显示选择的性能。
图 3.8 选择示例
如果有一段文本被选中,此时用户键入的文字将替换被选中的文本。有些情况下,也可以用粘贴命令用新文本替换原有的文本。 SelText 属性是一串文本,可以在运行时给它赋值以替换当前选中的文本。如果没有选中的文本, SelText 将在当前插入点插入文本。
详细信息 关于 TextBox 控件的属性的详细信息,请参阅“使用 Visual Basic 的标准控件”。