TextBox 概述

更新:2007 年 11 月

使用 TextBox 类可以显示或编辑非格式化文本。TextBox 的常用用途是在表单中编辑非格式化文本。例如,如果一个表单要求输入用户姓名、电话号码等,则可以使用 TextBox 控件来进行文本输入。本主题介绍 TextBox 类,并提供如何在 可扩展应用程序标记语言 (XAML) 和 C# 中使用它的示例。

本主题包括下列各节。

  • 使用 TextBox 还是 RichTextBox?
  • 创建 TextBox
  • 在内容更改时进行检测
  • 相关主题

使用 TextBox 还是 RichTextBox?

TextBoxRichTextBox 都允许用户输入文本,但是这两个控件用于不同的情形。TextBox 要求的系统资源比 RichTextBox 少,因此当只需编辑纯文本(即用于表单)时,它是理想选择。当用户需要编辑已设置格式的文本、图像、表或其他支持的内容时,最好选择 RichTextBox。例如,编辑需要格式、图像等内容的文档、文章或博客时,最好使用 RichTextBox。下表汇总了 TextBoxRichTextBox 的主要功能。

Control

实时拼写检查

上下文菜单

格式设置命令,例如 ToggleBold (Ctr+B)

FlowDocument 内容,例如图像、段落、表等。

TextBox

Yes

Yes

No

否。

RichTextBox

Yes

Yes

是(请参见 RichTextBox 概述

是(请参见 RichTextBox 概述

说明:

虽然 TextBox 不支持 ToggleBold (Ctr+B) 之类的与格式设置有关的编辑命令,但是这两个控件都支持许多基本命令,例如 MoveToLineEnd。有关更多信息,请参见EditingCommands。另外,有关与 TextBox 一起使用的编辑命令的演示,请参见 EditingCommand 示例

下面几节介绍了 TextBox 支持的功能。有关 RichTextBox 的更多信息,请参见 RichTextBox 概述

实时拼写检查

您可以在 TextBoxRichTextBox 中启用实时拼写检查。启用拼写检查后,会在所有拼写错误的字词下面显示红线(请见下图)。

具有拼写检查功能的 TextBox

若要了解如何启用拼写检查,请参见如何:在文本编辑控件中启用拼写检查

上下文菜单

默认情况下,TextBoxRichTextBox 都会在用户右击该控件时显示一个上下文菜单。用户可以使用该上下文菜单进行剪切、复制或粘贴(请见下图)。

具有上下文菜单的 TextBox

您可以创建自己的自定义上下文菜单来重写默认行为。有关更多信息,请参见如何:通过 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 帮助主题

在内容更改时进行检测

通常,只要 TextBoxRichTextBox 中的文本发生更改,就应使用 TextChanged 事件进行检测,而不像您可能认为的那样使用 KeyDown。有关示例,请参见 如何:检测 TextBox 中的文本何时更改

请参见

任务

EditingCommand 示例

编辑检查器演示

记事本演示

概念

RichTextBox 概述

其他资源

TextBox 帮助主题