TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい

C#でTextBoxがフォーカスを失うと選択表示が消える動作を防ぐ手順を紹介します。

動作の確認

UI

下図のフォームを作成します。フォームにTextBoxを配置します。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像1

TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像2

動作確認

プロジェクトを実行します。下図のフォームが表示されます。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像3
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像4

テキストボックスに文字列を入力します。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像5
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像6

入力した文字列を選択します。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像7
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像8

TextBoxから別のコントロールにフォーカスが移る、または、フォームが非アクティブになると、TextBoxの選択表示が見えなくなります。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像9
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像10

フォーカスがTextBoxに移る、または、ウィンドウがアクティブ化するとTextBoxの選択状態が表示されます。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像11
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像12

フォーカスを失うと選択表示が解除される動作を防ぐ

フォーカスを失った場合でも選択表示をする場合は、TextBox の HideSelection プロパティを変更します。
フォームデザイナで TextBox を選択し、プロパティウィンドウを表示します。HideSelection プロパティの値を確認します。デフォルトでは"True"に設定されています。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像13

HideSelection プロパティの右側の値のコンボボックスをクリックします。下図のドロップダウンリストが表示されます。ドロップダウンリストから "False" の項目を選択します。もしくは、プロパティ値のエリアをダブルクリックしても値が変更できます。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像14

HideSelection プロパティの値を"False"に変更しました。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像15

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像16
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像17


TextBoxに文字列を入力します。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像18
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像19

入力した文字列を選択します。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像20
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像21

TextBoxから別のコントロールにフォーカスが移る、または、フォームが非アクティブにしても、選択状態は表示されたままになります。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像22
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像23

フォーカスがTextBoxに移る、または、ウィンドウがアクティブ化してもTextBoxの選択状態は変わりません。
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像24
TextBoxがフォーカスを失うと選択表示が消える動作を防ぎたい:画像25


AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2017-06-26
Copyright © 1995–2025 iPentec all rights reserverd.