TextBox

クラス階層

  • System.ComponentModel.Component
    • System.Windows.Forms.Control
      • System.Windows.Forms.TextBoxBase
        • System.Windows.Forms.TextBox
        • System.Windows.Forms.RichTextBox
        • System.Windows.Forms.MaskedTextBox

プロパティ

プロパティ 内容 既定
string Text コントロールのテキスト  
int TextLength コントロールのテキストの長さ  
bool AcceptsReturn Enterキーの動作を決める
  • true … 改行文字が入力される。ただしMultilineがfalseならば、何も入力されない
  • false … フォームの既定のボタンがアクティブになる。改行文字を入力するには、Ctrl + Enterを押下する
false
bool AcceptsTab Tabキーの動作を決める。
  • true … タブ文字が入力される。フォーカスを移動するには、Ctrl + Tabを押下する
  • false … 次のコントロールにフォーカスが移動する
false
bool Multiline trueならば、複数行 false
bool WordWrap trueならば、必要ならば行が折り返される true
ScrollBars ScrollBars 表示するスクロール バー

既定はScrollBars.Noneで水平も垂直スクロールバーも表示されず、テキストが表示領域を超えていても、それを視認できない。またWordWrapがtrueのときは、この設定に関わらず水平スクロールバーは表示されない

 
int MaxLength ユーザーが入力または貼り付けられる文字列の最大数

Textプロパティからプログラムにより設定する方法には作用しない

 
string SelectedText 選択されているテキストを表す文字列。選択されていないならば、長さ0の文字列が返される  
int SelectionStart 選択されているテキストの開始位置。選択されていないならば、新しいテキストの挿入位置  
int SelectionLength 選択されているテキストの数  
bool HideSelection trueならば、フォーカスを失ったときに強調表示しない true
bool Modified trueならば、コントロールが作成または内容が設定されてから、ユーザーによって変更されている false
CharacterCasing CharacterCasing 入力された文字の大文字/小文字の変換方法  
AutoCompleteStringCollection AutoCompleteCustomSource AutoCompleteSourceプロパティがCustomSourceに設定されているときに使用される、文字列のコレクション  
       
プロパティ - TextBox クラス (System.Windows.Forms) | Microsoft Learn

SelectedText

TextBoxは最初にフォーカスされたとき、既定ですべてのテキストが選択された状態となります。これを無効にするにはTextプロパティの設定後に、SelectionStartプロパティに値を設定します。c# - Why is text in TextBox highlighted (selected) when form is displayed? - Stack Overflow

textBox.Text = "SAMPLE";
textBox.SelectionStart = 0;

Modified

初期状態はfalseで、ユーザーにより内容が変更されるとtrueとなります。そしてTextプロパティをプログラムにより変更すると、再びfalseとなります。

trueとなった後は、元と同じ内容に書き替えられても、コンテキストメニューの[元に戻す]で変更前の内容に戻されてもtrueのままのため、このプロパティだけで内容が異なる状態となったかは判定できません。

オートコンプリート (AutoComplete)

入力された文字列に、大文字/小文字の区別なく前方一致する文字列を提示できます。

複数行では機能しません。Remarks - TextBox.AutoCompleteSource Property (System.Windows.Forms) | Microsoft Learn

提示される文字列のフォントにはTextBoxのそれは適用されず、フォントを指定する方法も提供されていません。 WinForms | C# | AutoComplete in the Middle of a Textbox? - Stack Overflow change Textbox autocomplete dropdown Font

AutoCompleteMode

TextBox.AutoCompleteMode プロパティ (System.Windows.Forms) | Microsoft Learn
AutoCompleteMode列挙型
列挙子 数値  
None 0  
Suggest 1 ドロップダウン リストで提示する
Append 2 文字列を追加し、追加部分を選択状態にする
SuggestAppend 3 SuggestとAppendの両方
AutoCompleteMode 列挙型 (System.Windows.Forms) | Microsoft Learn

AutoCompleteSource

TextBox.AutoCompleteSource プロパティ (System.Windows.Forms) | Microsoft Learn
AutoCompleteSource 列挙型
列挙子 数値 意味
FileSystem 1  
HistoryList 2  
RecentlyUsedList 4  
     
CustomSource 64  
None 128  
ListItems 256 ComboBoxの項目
     
AutoCompleteSource 列挙型 (System.Windows.Forms) | Microsoft Learn

AutoCompleteSourceをCustomSourceとしたときには、AutoCompleteCustomSourceプロパティでそのリストを指定します。

textBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
textBox.AutoCompleteSource = AutoCompleteSource.CustomSource;

textBox.AutoCompleteCustomSource.AddRange(new string[]
{
    "ABC",
    "DEF",
    "GHI",
});

提示される文字列は、追加順とは無関係に並べ替えられて表示されます。重複した文字列を追加できますが、表示はされません。

メソッド

メソッド 機能
Focus() コントロールに入力フォーカスを設定する
Select() コントロールをアクティブにする
Select(Int32, Int32) 指定範囲のテキストを選択する
SelectAll() すべてのテキストを選択する
ScrollToCaret() キャレットが表示される位置までスクロールできる
   
メソッド - TextBox クラス (System.Windows.Forms) | Microsoft Learn

AppendText()

Textプロパティにテキストを追加できます。

public void AppendText(string text)
TextBoxBase.AppendText(String) メソッド (System.Windows.Forms) | Microsoft Learn

ScrollToCaret()

表示位置を制御できます。

スクロールバーはWin32のSetScrollInfo()で移動できますが、これを呼ぶだけでは内容はスクロールしません。[C#] ウィンドウコントロールのスクロールバー情報の取得と設定

イベント

イベント 発生タイミング
TextChanged Textプロパティの値が変更されるとき。プログラム、ユーザーいずれによる変更でも発生する
   
イベント - TextBox クラス (System.Windows.Forms) | Microsoft Learn

KeyDown

AutoCompleteModeをNone以外に、そしてAutoCompleteSourceを設定すると、Ctrl + Tabなどに対しKeyDownイベントが発生しなくなります。

Microsoft Learnから検索