UltraNumericEditor ではタブ移動や Focus() によりフォーカスされた際に、テキストエリア全体が選択された状態になる仕様です。この仕様をストップするプロパティは実装されておりませんので、以下の方法で回避することをお試しください。
利用するプロパティは以下です。
- SelectionStart プロパティ
- コントロールの編集部分で選択されたテキストの開始位置を取得または設定します。
- SelectionLength プロパティ
- コントロールの編集部分で選択された文字数を取得または設定します。
実装方法は以下になります。
以下は、Focus() を使ってコードでフォーカスを当てる想定としています。 this.ultraNumericEditor1.Focus(); 👈 (1) Focus メソッド実行し、テキストが全選択された状態になります。 this.ultraNumericEditor1.SelectionStart = this.ultraNumericEditor1.SelectionLength; 👈 (2) SelectionStart に SelectionLength を設定します。
タブ移動などによるフォーカス時の対応を行う場合には Enter イベント内で (2) の “SelectionStart に SelectionLength を設定” する処理をお試し下さい。
以下が実装イメージです。
private void ultraNumericEditor1_Enter(object sender, EventArgs e) { UltraNumericEditor unEditor = sender as UltraNumericEditor; unEditor.SelectionStart = unEditor.SelectionLength; }
是非お試しください。