次の方法で共有


TextBox の概要

TextBox クラスを使用すると、書式なしテキストを表示または編集できます。 TextBox は一般的に、フォームで書式なしテキストを編集するために使用されます。 たとえば、ユーザーの氏名や電話番号などの入力を求めるフォームで、テキスト入力のために TextBox コントロールを使用します。 このトピックでは、TextBox クラスについて説明し、Extensible Application Markup Language (XAML) と C# の両方で使用する例を示します。

このトピックは、次のセクションで構成されています。

  • TextBox と RichTextBox
  • TextBox の作成
  • コンテンツの変更の検出
  • 関連トピック

TextBox と RichTextBox

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

コントロール

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

コンテキスト メニュー

ToggleBold (Ctrl + B) などの書式設定コマンド

イメージ、段落、テーブルなどの FlowDocument コンテンツ

TextBox

×

×

RichTextBox

○ (RichTextBox の概要 を参照)

○ (RichTextBox の概要 を参照)

メモメモ

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

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

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

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

スペル チェックを含む 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 を使用します。 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 に設定した場合は、Enter キーを押すたびに新しい行が挿入されます。このときも、TextBox は新しい行が収まるように必要に応じて自動的に調整されます。

VerticalScrollBarVisibility 属性を設定すると TextBox にスクロール バーが追加され、TextBox がそれを囲むフレームまたはウィンドウのサイズよりも大きくなった場合は、TextBox の内容をスクロールすることができます。

TextBox の使用に関連するさまざまなタスクの詳細については、「TextBox に関する「方法」トピック」を参照してください。

コンテンツの変更の検出

TextBox または RichTextBox 内のテキストが変わったことを検出するには、KeyDown イベントを使用すると思われがちですが、通常は TextChanged イベントを使用する必要があります。 例については、「方法 : TextBox のテキストがいつ変更されたかを検出する」を参照してください。

参照

概念

RichTextBox の概要

その他の技術情報

TextBox に関する「方法」トピック