TextBox 概觀
TextBox 類別可讓您顯示或編輯未格式化的文字。 TextBox 的常見用法是編輯表單中未格式化的文字。 例如,要求使用者填入姓名、電話號碼等資訊的表單,會使用 TextBox 控制項以進行文字輸入。 本主題介紹 TextBox 類別,並提供其在 Extensible Application Markup Language (XAML) 和 C# 中的使用方式範例。
TextBox 或 RichTextBox?
TextBox 和 RichTextBox 都允許使用者輸入文字,但是,這兩個控制項適用於不同的案例。 TextBox 所需的系統資源比 RichTextBox 少,因此是純文本編輯時的理想方式 (例如,用於表格)。 當使用者有必要編輯格式化文字、影像、表格或其他支援的內容時,RichTextBox 是較佳的選擇。 例如,編輯需要格式化或影像等的文件、文章或部落格時,最好使用 RichTextBox 來完成。 下表摘要說明 TextBox 和 RichTextBox 的主要功能。
控制 | 即時拼字檢查 | 操作功能表 | 將 ToggleBold 之類的命令格式化 (Ctr+B) | FlowDocument 內容如影像、段落、表格等。 |
---|---|---|---|---|
TextBox | Yes | Yes | No | 否。 |
RichTextBox | Yes | Yes | 是 (請參閱 RichTextBox 概觀) | 是 (請參閱 RichTextBox 概觀) |
注意
雖然 TextBox 不支援格式化 ToggleBold (Ctr+B) 等相關編輯命令,但兩個控制項都支援許多基本命令,例如 MoveToLineEnd。 如需相關資訊,請參閱 EditingCommands 。
下列各節涵蓋 TextBox 支援的功能。 如需 RichTextBox 的詳細資訊,請參閱 RichTextBox 概觀。
即時拼字檢查
您可以在 TextBox 或 RichTextBox 中啟用即時拼字檢查。 啟用拼字檢查時,拼錯的文字下方會出現紅色線條 (請見下圖)。
具有拼字檢查功能的文字方塊Editing_TextBox_with_Spellchecking
若要了解如何啟用拼字檢查,請參閱在文字編輯控制項中啟用拼字檢查。
操作功能表
根據預設,TextBox 和 RichTextBox 都有一個捷徑功能表,當使用者在控制項按兩下滑鼠右鍵時會出現。 操作功能表可以讓使用者剪下、複製或貼上 (請見下圖)。
具有操作功能表的 TextBoxEditing_TextBox_with_Context_Menu
您可以建立自訂操作功能表來覆寫預設行為。 如需詳細資訊,請參閱搭配 TextBox 使用自訂操作功能表。
建立 TextBox
TextBox 可以是單行,或是由多行組成。 單行 TextBox 最適合用於輸入少量的純文字 (例如,表單中的「名稱」、「電話號碼」等)。 下列範例顯示如何建立單行 TextBox。
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel>
<TextBox Width="200" MaxLength="100" />
</StackPanel>
</Page>
您也可以建立能讓使用者輸入多行文字的 TextBox。 例如,如果您的表單要求使用者填入概略的自傳,便應該使用支援多行文字的 TextBox。 下列範例顯示如何使用 Extensible Application Markup Language (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 相關之各種工作的詳細資訊,請參閱操作說明主題。
偵測內容變更
通常應使用 TextChanged 事件來偵測 TextBox 或 RichTextBox 中的文字何時變更,而不是如您預期的 KeyDown。 如需範例,請參閱偵測 TextBox 中的文字變更。