TextBox 概述
更新:2007 年 11 月
使用 TextBox 类可以显示或编辑非格式化文本。TextBox 的常用用途是在表单中编辑非格式化文本。例如,如果一个表单要求输入用户姓名、电话号码等,则可以使用 TextBox 控件来进行文本输入。本主题介绍 TextBox 类,并提供如何在 可扩展应用程序标记语言 (XAML) 和 C# 中使用它的示例。
本主题包括下列各节。
- 使用 TextBox 还是 RichTextBox?
- 创建 TextBox
- 在内容更改时进行检测
- 相关主题
使用 TextBox 还是 RichTextBox?
TextBox 和 RichTextBox 都允许用户输入文本,但是这两个控件用于不同的情形。TextBox 要求的系统资源比 RichTextBox 少,因此当只需编辑纯文本(即用于表单)时,它是理想选择。当用户需要编辑已设置格式的文本、图像、表或其他支持的内容时,最好选择 RichTextBox。例如,编辑需要格式、图像等内容的文档、文章或博客时,最好使用 RichTextBox。下表汇总了 TextBox 和 RichTextBox 的主要功能。
Control |
实时拼写检查 |
上下文菜单 |
格式设置命令,例如 ToggleBold (Ctr+B) |
FlowDocument 内容,例如图像、段落、表等。 |
---|---|---|---|---|
Yes |
Yes |
No |
否。 |
|
Yes |
Yes |
是(请参见 RichTextBox 概述) |
是(请参见 RichTextBox 概述) |
说明: |
---|
虽然 TextBox 不支持 ToggleBold (Ctr+B) 之类的与格式设置有关的编辑命令,但是这两个控件都支持许多基本命令,例如 MoveToLineEnd。有关更多信息,请参见EditingCommands。另外,有关与 TextBox 一起使用的编辑命令的演示,请参见 EditingCommand 示例。 |
下面几节介绍了 TextBox 支持的功能。有关 RichTextBox 的更多信息,请参见 RichTextBox 概述。
实时拼写检查
您可以在 TextBox 或 RichTextBox 中启用实时拼写检查。启用拼写检查后,会在所有拼写错误的字词下面显示红线(请见下图)。
若要了解如何启用拼写检查,请参见如何:在文本编辑控件中启用拼写检查。
上下文菜单
默认情况下,TextBox 和 RichTextBox 都会在用户右击该控件时显示一个上下文菜单。用户可以使用该上下文菜单进行剪切、复制或粘贴(请见下图)。
您可以创建自己的自定义上下文菜单来重写默认行为。有关更多信息,请参见如何:通过 TextBox 使用自定义上下文菜单。
创建 TextBox
TextBox 的高度可以是一行,也可以包含多行。对于输入少量纯文本而言(例如表单中的“名称”、“电话号码”等),单行 TextBox 是最好的选择。下面的示例演示如何创建一个单行 TextBox。
<Page xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel>
<TextBox Width="200" MaxLength="100" />
</StackPanel>
</Page>
您还可以创建一个使用户可以输入多行文本的 TextBox。例如,如果您的表单要求输入用户的自传,您可能需要使用支持多行文本的 TextBox。下面的示例演示如何使用 可扩展应用程序标记语言 (XAML) 来定义一个 TextBox 控件,该控件可自动扩展以容纳多行文本。
<TextBox
Name="tbMultiLine"
TextWrapping="Wrap"
AcceptsReturn="True"
VerticalScrollBarVisibility="Visible"
>
This TextBox will allow the user to enter multiple lines of text. When the RETURN key is pressed,
or when typed text reaches the edge of the text box, a new line is automatically inserted.
</TextBox>
将 TextWrapping 属性设置为 Wrap 会导致文本在到达 TextBox 控件的边缘时换至新行,必要时会自动扩展 TextBox 控件以便为新行留出空间。
将 AcceptsReturn 属性设置为 true 会导致在按 Return 键时插入新行,必要时会再次自动扩展 TextBox 以便为新行留出空间。
VerticalScrollBarVisibility 属性向 TextBox 添加一个滚动条,以便在 TextBox 超出包含它的框架或窗口的大小时,可以滚动 TextBox 的内容。
有关与使用 TextBox 关联的不同任务的更多信息,请参见 TextBox 帮助主题。
在内容更改时进行检测
通常,只要 TextBox 或 RichTextBox 中的文本发生更改,就应使用 TextChanged 事件进行检测,而不像您可能认为的那样使用 KeyDown。有关示例,请参见 如何:检测 TextBox 中的文本何时更改。