ユーザーがNumericUpDown
にタブ移動すると、すべてのテキストが選択されます。これは可能ですか?
private void NumericUpDown1_Enter(object sender, EventArgs e)
{
NumericUpDown1.Select(0, NumericUpDown1.Text.Length);
}
(TextプロパティはIntellisenseで非表示になっていますが、そこにあります)
Tab and Clickを検索してきた将来の人々のためにこれを追加したかった。
Jon Bの回答はタブに最適ですが、クリックを含めるように変更する必要がありました
以下は、タブインまたはクリックするとテキストを選択します。クリックしてボックスに入力すると、テキストが選択されます。ボックスに既に集中している場合は、クリックで通常の動作が実行されます。
bool selectByMouse = false;
private void quickBoxs_Enter(object sender, EventArgs e)
{
NumericUpDown curBox = sender as NumericUpDown;
curBox.Select();
curBox.Select(0, curBox.Text.Length);
if (MouseButtons == MouseButtons.Left)
{
selectByMouse = true;
}
}
private void quickBoxs_MouseDown(object sender, MouseEventArgs e)
{
NumericUpDown curBox = sender as NumericUpDown;
if (selectByMouse)
{
curBox.Select(0, curBox.Text.Length);
selectByMouse = false;
}
}
これを複数のnumericUpDownコントロールに使用できます。 EnterイベントとMouseDownイベントを設定するだけです
私は同じ問題を抱えて周りを見回していましたが、これは私のために機能します。最初にアイテムを選択し、2番目のものはテキストを選択します、将来的に役立つことを願っています
myNumericUpDown.Select();
myNumericUpDown.Select(0, myNumericUpDown.Value.ToString().Length);
これを実現するための拡張メソッドを作成しました。
VB:
<Extension()>
Public Sub SelectAll(myNumericUpDown As NumericUpDown)
myNumericUpDown.Select(0, myNumericUpDown.Text.Length)
End Sub
C#:
public static void SelectAll(this NumericUpDown numericUpDown)
numericUpDown.Select(0, myNumericUpDown.Text.Length)
End Sub
複数のnumericupdownボックスがあり、これをすべてに達成したいと思いました。私は造った:
private void num_Enter(object sender, EventArgs e)
{
NumericUpDown box = sender as NumericUpDown;
box.Select();
box.Select(0, num_Shortage.Value.ToString().Length);
}
次に、この機能を各ボックスのEnterイベントに関連付けることで(これは行いませんでした)、目標が達成されました。私は初心者なので、理解するのにしばらくかかりました。これが他の誰かを助けることを願っています