Home > C# > WPF > WPFコントロール > テキスト編集コントロール > TextBox

WPFでTextBoxを使う

新規作成日 2018-11-20
最終更新日

TextBoxは、テキストが編集可能なコンポーネントで、UI上で、テキストを入力したい場合に使用します。

同じTextBoxでも、FormアプリとWPFアプリでは、異なる実装がされている事に注意してください。このページでは、WPFのTextBoxを扱います。

TextBoxを追加する

TextBoxコントロールは、ほとんどのWPFコンポーネントと同じように、デザイナのツールボックスから配置することも、xamlコードを直接入力することもできます。C#コードで生成することもできると思いますが、動的にTextBoxコンポーネントを生成する必要があるUIは、おそらく存在しないと思います。

ツールボックスから、TextBoxを追加

デザインにドロップすると追加されます。

デザインにドロップすると追加されます。

xamlコードで記述する

<Window x:Class="TextBox01.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="200" Width="350">
    <Grid>
        <TextBox Name="tb"/>
    </Grid>
</Window>

入力スタイルを制御する属性

xamlコードでは、TextBoxタグ内で、属性を指定して、TextBoxの挙動を制御できます。

TextBoxの属性(抜粋)
属性 挙動
AcceptsReturn Enter キーを入力したとき、改行するか(true)、しない(false, 既定値)かを指定します。
AcceptsTab Tab キーを入力したとき、Tab文字が挿入されるか(true)、しない(false, 既定値)かを指定します。
AllowDrop ドラッグアンドドロップ操作を有効にするか(true)、しない(false, 既定値)かを指定します。
FontFamily 使用するフォントを指定、あるいは、取得します。
FontSize 使用するフォントの大きさを指定、あるいは、取得します。
FontStyle 使用するフォント・スタイルを指定、あるいは、取得します。
FontWeight 使用するフォントの太さを指定、あるいは、取得します。
HorizontalScrollBarVisibility 水平スクロール バーが表示されるかどうかを示す値を取得または設定します。(Auto, Disabled, Hidden(既定値), Visible)
VerticalScrollBarVisibility 垂直スクロール バーが表示されるかどうかを示す値を取得または設定します。(Auto, Disabled, Hidden(既定値), Visible)
TextWrapping コントロール内で、テキストを折り返す(Wrap)かどうかを指定します。(NoWrap, Wrap, WrapWithOverflow)
参考

属性を使用して挙動の異なるTextBoxを作成する

TextBoxコンポーネントは、属性を追加するだけで様々な挙動をするTextBoxを作成できます。

TextBox内のテキストの取得と変更

テキストを編集可能なTextBoxのようなコントロールは、プログラム実行時にテキストをユーザーから取得するために使用されます。そのため、頻繁に、C#コードから、TextBoxの値を取得する、そして、TextBoxの値を変更することになります。

TextBoxのイベントを利用する[C# WPF]

TextBoxの入力をイベントを使って制御することで、より複雑な動作を行うことができます。

キー入力の数値だけがTextBoxに表示されます。

PreviewTextInputイベントを使って、TextBoxに値を入力する前に、正規表現を使って、入力された文字が数字であることを確認します。入力された値が、数字の場合のみ、値が入力されます。

xaml UI

TextBoxのUI動作を確認するために使えるUIデザインの例です。

単純なデザインのウィンドウ

C# WPF TextBoxで、ウォーターマック(プレースホルダー)を実現する

ウォーターマック(プレースホルダー)は、TextBox内に表示する、テキストボックスに入力する内容を示す、薄く表示される文字の説明です。TextBoxには、この機能はありません。

そこで、いろいろな方法で、ウォーターマック(プレースホルダー)を実現する方法が紹介されています。

このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」