web-dev-qa-db-fra.com

Comment sélectionner tout le texte dans Winforms NumericUpDown dans l'onglet?

Lorsque l'utilisateur tabule dans mon NumericUpDown je voudrais que tout le texte soit sélectionné. Est-ce possible?

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

(Notez que la propriété Text est masquée dans Intellisense, mais elle est là)

116
Jon B

Je voulais ajouter à cela pour les futures personnes qui ont recherché Tab et Click.

La réponse de Jon B fonctionne parfaitement pour Tab mais je devais modifier pour inclure le clic

Ci-dessous sélectionnera le texte si vous tabulez ou cliquez dedans. Si vous cliquez et que vous entrez dans la boîte, il sélectionnera le texte. Si vous êtes déjà concentré sur la boîte, le clic fera ce qu'il fait normalement.

    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;
        }
    }

Vous pouvez l'utiliser pour plusieurs contrôles numericUpDown. Il suffit de définir les événements Enter et MouseDown

8
BrinkDaDrink

Je regardais autour de moi, j'ai eu le même problème et cela fonctionne pour moi, sélectionnez d'abord l'article et le second sélectionne le texte, j'espère que cela aidera à l'avenir

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

J'ai créé une méthode d'extension pour accomplir cela:

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
2
cjbarth

J'avais plusieurs boîtiers numériques et je voulais y parvenir pour tous. J'ai créé:

private void num_Enter(object sender, EventArgs e)
{
    NumericUpDown box = sender as NumericUpDown;
    box.Select();
    box.Select(0, num_Shortage.Value.ToString().Length);
}

Ensuite, en associant cette fonction à l'événement Enter pour chaque case (ce que je n'ai pas fait), mon objectif a été atteint. Cela m'a pris un certain temps pour comprendre que je suis un débutant. J'espère que cela aide quelqu'un d'autre

0
Nicolas