TextBox 概觀
TextBox 類別可以讓您顯示或編輯未格式化的文字。 TextBox 的一般用途是編輯表單中未格式化的文字。 例如,要求使用者填入姓名、電話號碼等資訊的表單會使用 TextBox 控制項提供使用者輸入文字。 本主題介紹 TextBox 類別,並提供如何在Extensible Application Markup Language (XAML) 和 C# 中使用的範例。
這個主題包含下列章節。
- 選擇 TextBox 或 RichTextBox
- 建立 TextBox
- 偵測內容變更
- 相關主題
選擇 TextBox 或 RichTextBox
TextBox 和 RichTextBox 都能夠讓使用者輸入文字,但是這兩個控制項適用於不同的情況。 TextBox 需要的系統資源比 RichTextBox 少,因此當只需要編輯純文字時 (例如表單用途) 時是比較理想的選擇。 RichTextBox 在需要使用者編輯格式化文字、影像、表格或其他支援的內容時是比較好的選擇。 例如,編輯需要格式化、影像等等的文件、文章或網誌時,最好是使用 RichTextBox 來完成。 下表摘要說明 TextBox 和 TextBox 的主要功能。
控制項 |
即時拼字檢查 |
內容功能表 |
ToggleBold (Ctr+B) 之類的格式化命令 |
影像、段落、表格之類的 FlowDocument 內容 |
---|---|---|---|---|
是 |
是 |
否 |
否。 |
|
是 |
是 |
有 (請參閱 RichTextBox 概觀) |
有 (請參閱 RichTextBox 概觀) |
注意事項 |
---|
雖然 TextBox 不支援像 ToggleBold (Ctr+B) 之類的格式化相關編輯命令,但是這兩個控制項都支援許多基本命令,像是 MoveToLineEnd。如需詳細資訊,請參閱 EditingCommands。 |
下列章節涵蓋 TextBox 支援的功能。 如需 RichTextBox 的詳細資訊,請參閱 RichTextBox 概觀。
即時拼字檢查
您可以在 TextBox 或 RichTextBox 中啟用即時拼字檢查。 開啟拼字檢查時,拼錯的文字下方會出現紅色線條 (請見下圖)。
若要了解如何啟用拼字檢查,請參閱 HOW TO:在文字編輯控制項中啟用拼字檢查。
內容功能表
根據預設,TextBox 和 RichTextBox 在使用者於控制項內以滑鼠右鍵按一下時,都會顯示內容功能表。 內容功能表可以讓使用者剪下、複製或貼上文字 (請見下圖)。
您可以建立自訂的內容功能表來覆寫預設的行為。 如需詳細資訊,請參閱 HOW TO:在文字方塊使用自訂內容功能表。
建立 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。 下列範例會顯示如何使用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 相關之不同工作的詳細資訊,請參閱 TextBox HOW TO 主題。
偵測內容變更
TextBox 或 RichTextBox 中的文字變更通常應該是由 TextChanged 事件來偵測,而不是您可能以為的 KeyDown 事件。 如需範例,請參閱 HOW TO:偵測 TextBox 中的文字何時變更。