Javaと情熱のあいだ

カステラとドーナツと珈琲

.netのTextBoxでフォーカスを取得した際に全選択状態にする方法

.netのTextBoxコントロールではフォーカス取得後に全選択状態にしたい場合が有ります。
EnterインベントでSelectAll()というメソッドを呼ぶ方法はマウスとTABフォーカスでは
挙動が異なってしまい想定した通りに動作しない。
先人の知恵を探して見ると、カスタムコンポーネントを作成してこの動作に対応させる方法が有るようなのでメモ。

protected override void OnGotFocus(EventArgs e) {
this.BeginInvoke(new MethodInvoker(() => this.SelectAll()));
}

動作原理は不明ですが、上記を記述するだけでマウスとTABフォーカスでも同じ動作になります。

参考:
ざっちのーと 【C#】TextBoxフォーカス取得時、TextBox内を全選択(反転表示)させたい