Подтвердить что ты не робот

Как выбрать весь текст в Winforms NumericUpDown после входа?

Когда пользователь входит в мой NumericUpDown, я бы хотел, чтобы весь текст был выбран. Возможно ли это?

4b9b3361

Ответ 1

private void NumericUpDown1_Enter(object sender, EventArgs e)
{
    NumericUpDown1.Select(0, NumericUpDown1.Text.Length);
}

(Обратите внимание, что свойство Text скрыто в Intellisense, но оно там)

Ответ 2

Я хотел добавить к этому для будущих людей, которые искали вкладки и клики.

Ответ на Jon B отлично подходит для Tab, но мне нужно было изменить его, нажав

Ниже выберем текст, если вы входите или входите. Если вы нажмете и вы введете поле, тогда он выберет текст. Если вы уже сосредоточены на поле, то щелчок будет делать то, что он обычно делает.

    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

Ответ 3

Я смотрел вокруг, у меня была такая же проблема, и это работает для меня, сначала выберите элемент, а второй выбирает текст, надеюсь, что он поможет в будущем

myNumericUpDown.Select();
 myNumericUpDown.Select(0, myNumericUpDown.Value.ToString().Length);

Ответ 4

Я создал метод расширения для этого:

VB:

<Extension()>
Public Sub SelectAll(myNumericUpDown As NumericUpDown)
    myNumericUpDown.Select(0, myNumericUpDown.Text.Length)
End Sub

С#:

public static void SelectAll(this NumericUpDown numericUpDown)
    numericUpDown.Select(0, myNumericUpDown.Text.Length)
End Sub

Ответ 5

Try

 myNumericUpDown.Select(0, myNumericUpDown.Value.ToString().Length);

Ответ 6

У меня было несколько полей 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 для каждого окна (чего я не сделал), моя цель была достигнута. Понадобился время, чтобы понять, как я новичок. Надеюсь, что это поможет кому-то еще.