次の方法で共有


TextBox の概要

TextBox クラスを使用すると、書式設定されていないテキストを表示または編集できます。 TextBox の一般的な用途は、書式設定されていないテキストをフォームで編集する場合です。 たとえば、ユーザーの名前や電話番号などを要求するフォームでは、テキスト入力に TextBox コントロールが使用されます。 このトピックでは、TextBox クラスについて説明し、拡張アプリケーション マークアップ言語 (XAML) と C# の両方で使用する方法の例を示します。

TextBox または RichTextBox?

TextBoxRichTextBox の両方で、ユーザーはテキストを入力できますが、2 つのコントロールはさまざまなシナリオで使用されます。 TextBox では、RichTextBox に必要なシステム リソースが少ないため、プレーン テキストのみを編集する必要がある場合 (つまり、フォームでの使用方法) に最適です。 RichTextBox は、ユーザーが書式設定されたテキスト、画像、テーブル、またはその他のサポートされているコンテンツを編集する必要がある場合に適しています。 たとえば、書式設定や画像などを必要とするドキュメント、記事、ブログを編集するには、RichTextBoxを使用するのが最適です。 次の表は、TextBoxRichTextBoxの主な機能をまとめたものです。

コントロール リアルタイムスペルチェック コンテキスト メニュー ToggleBold などの書式設定コマンド (Ctr + B) イメージ、段落、テーブルのような FlowDocument コンテンツ
TextBox はい はい いいえ いいえ。
RichTextBox はい はい はい (RichTextBox の概要参照) はい (RichTextBox の概要参照)

手記

TextBox では、ToggleBold (Ctr+ B) などの書式設定関連の編集コマンドはサポートされていませんが、MoveToLineEndなどの両方のコントロールで多くの基本的なコマンドがサポートされています。 詳細については、EditingCommands を参照してください。

TextBox でサポートされる機能については、以下のセクションで説明します。 RichTextBoxの詳細については、「RichTextBox の概要」をご覧ください。

リアルタイムスペルチェック

TextBox または RichTextBoxでリアルタイムのスペル チェックを有効にすることができます。 スペル チェックをオンにすると、スペルミスのある単語の下に赤い線が表示されます (下の図を参照)。

テキストボックス スペル チェック機能を用いたテキスト編集

スペル チェック 有効にする方法については、「テキスト編集コントロールでスペル チェックを有効にする」を参照してください。

コンテキスト メニュー

既定では、TextBoxRichTextBox の両方に、ユーザーがコントロール内を右クリックしたときに表示されるコンテキスト メニューがあります。 コンテキスト メニューを使用すると、ユーザーは切り取り、コピー、または貼り付けを行えます (下の図を参照)。

コンテキスト メニューを使用して TextBox を編集する

独自のカスタム コンテキスト メニューを作成して、既定の動作をオーバーライドできます。 詳細については、「テキスト ボックス でカスタム コンテキスト メニューを使用する」を参照してください。

テキスト ボックスの作成

TextBox は、高さが 1 行の場合も、複数の行で構成することもできます。 1 行 TextBox は、少量のプレーン テキスト ("名前"、"電話番号" など) をフォームに入力する場合に最適です。 次の例は、1 行の 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の使用に関連するさまざまなタスクの詳細については、「方法に関するトピックを参照してください。

コンテンツの変更を検出する

通常、TextBox または RichTextBox のテキストが変化するたびに検出するには、期待されるように KeyDown ではなく、TextChanged イベントを使用する必要があります。 例については、「テキスト ボックス内のテキストが変更された を検出する」を参照してください。

関連項目