System.Windows.Controls 命名空 ...


.NET Framework 类库
TextBox 类

更新:2007 年 11 月

表示一个可用于显示或编辑无格式文本的控件。

命名空间:  System.Windows.Controls
程序集:  PresentationFramework(在 PresentationFramework.dll 中)
用于 XAML 的 XMLNS:http://schemas.microsoft.com/winfx/xaml/presentation

语法

Visual Basic(声明)
<ContentPropertyAttribute("Text")> _
<LocalizabilityAttribute(LocalizationCategory.Text)> _
Public Class TextBox _
    Inherits TextBoxBase _
    Implements IAddChild
Visual Basic (用法)
Dim instance As TextBox
C#
[ContentPropertyAttribute("Text")]
[LocalizabilityAttribute(LocalizationCategory.Text)]
public class TextBox : TextBoxBase, IAddChild
Visual C++
[ContentPropertyAttribute(L"Text")]
[LocalizabilityAttribute(LocalizationCategory::Text)]
public ref class TextBox : public TextBoxBase, 
    IAddChild
J#
/** @attribute ContentPropertyAttribute("Text") */
/** @attribute LocalizabilityAttribute(LocalizationCategory.Text) */
public class TextBox extends TextBoxBase implements IAddChild
JScript
public class TextBox extends TextBoxBase implements IAddChild
XAML 对象元素用法
<TextBox>
  Text
</TextBox>
备注

内容模型:TextBox 只能包含无格式文本。有关更多信息,请参见 TextBox 内容模型概述

下图显示了一个 TextBox 示例。

TextBox 示例

TextBox 屏幕快照

TextBox 是由若干封装组件组成的一个组合控件。因此,有些事件并不向上冒泡到包含控件,因为它们是由封装的子元素处理的。有鉴于此,应用程序开发人员应当侦听事件的隧道版本(由前缀“Preview”表示)。

TextBox 仅支持无格式文本。对于要求支持更为丰富的内容的应用程序,请参见 RichTextBox。对于需要接受密码或其他敏感输入的应用程序,请参见 PasswordBox

可通过 HorizontalContentAlignmentVerticalContentAlignment 属性在水平和垂直方向上对齐 TextBox 中的文本。可通过 HorizontalAlignmentVerticalAlignment 属性对齐页面布局内 TextBox

隐藏 TextBox 周围的边框的最好方法是将 TextBoxBorderThickness 属性设置为 0

重要说明:

TextBox 可对冒泡MouseUpMouseDown 事件进行内置处理。 因此,不会调用侦听来自 TextBoxMouseUpMouseDown 事件的自定义事件处理程序。 如果需要响应这些事件,应侦听隧道PreviewMouseUpPreviewMouseDown 事件,或者使用 HandledEventsToo 参数注册处理程序(后一种选择只能通过代码实现)。除非您有意要禁用这些事件的 TextBox 本机处理,否则请不要将事件标记为已处理。同时要注意,如此标记对于控件的 UI 会产生显著影响。

默认情况下,滚动条在 TextBox 上不可见。若要使滚动条可见,请将 VerticalScrollBarVisibilityHorizontalScrollBarVisibility 属性设置为 VisibleAuto

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

示例

此示例演示一种执行如下操作的方法:使用 SelectedText 属性来检索用户已经在 TextBox 控件中选择的文本。

下面的可扩展应用程序标记语言 (XAML) 示例演示 TextBox 控件(包含要选择的部分文本)和 Button 控件(具有指定的 OnClick 方法)的定义。

在本示例中,具有相关 Click 事件处理程序的按钮用来检索文本选定内容。当用户单击该按钮时,OnClick 方法会将文本框中任何选定的文本复制到字符串中。可以方便地修改用来检索文本选定内容的具体方法(单击按钮)以及针对该选定内容执行的操作(将文本选定内容复制到字符串),以便使其适应各种不同的情形。

C#
<TextBox Name="tbSelectSomeText">
  Some text to select...
</TextBox>

<Button Click="OnClick">Retrieve Selection</Button>

下面的 C# 示例演示了在上例的 XAML 中所定义按钮的 OnClick 事件处理程序。

Visual Basic
Private Sub OnClick(ByVal senter As Object, ByVal e As RoutedEventArgs)
    Dim sSelectedText As String = tbSelectSomeText.SelectedText
End Sub
C#
void OnClick(object sender, RoutedEventArgs e)
{
    String sSelectedText = tbSelectSomeText.SelectedText;
}

更多代码

如何:设置 TextBox 控件的文本内容本示例演示如何使用 Text 属性设置 TextBox 控件的初始文本内容。
如何:设置 TextBox 控件中的焦点此示例演示如何使用 Focus 方法在 TextBox 控件上设置焦点。
如何:检测 TextBox 中的文本何时更改使用本示例所演示的方法,可以在 TextBox 控件中的文本发生更改时,使用 TextChanged 事件执行相应的方法。
如何:将光标置于 TextBox 控件中的文本的开头或末尾本示例演示如何将光标置于 TextBox 控件的文本内容的开头或末尾。
如何:通过 TextBox 使用自定义上下文菜单本示例演示如何为 TextBox 定义和实现一个简单的自定义上下文菜单。
如何:使用背景图像来帮助提高 TextBox 的可用性下面的示例演示在用户输入文本之前,如何通过在 TextBox 的内部显示解释性背景图像来帮助提高 TextBox 的可用性。在用户输入文本时,该图像将被移除。另外,如果用户移除他们所输入的内容,背景图像会再次还原。请参见下图。
继承层次结构

System..::.Object
  System.Windows.Threading..::.DispatcherObject
    System.Windows..::.DependencyObject
      System.Windows.Media..::.Visual
        System.Windows..::.UIElement
          System.Windows..::.FrameworkElement
            System.Windows.Controls..::.Control
              System.Windows.Controls.Primitives..::.TextBoxBase
                System.Windows.Controls..::.TextBox
线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
平台

Windows Vista

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

版本信息

.NET Framework

受以下版本支持:3.5、3.0
另请参见

参考

其他资源

标记 :


Page view tracker