67

当用户进入我的标签时,NumericUpDown我希望选择所有文本。这可能吗?

4

7 回答 7

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

(请注意,Text 属性在 Intellisense 中是隐藏的,但它就在那里)

于 2009-02-20T20:24:07.120 回答
13

我想为以后一直在搜索 Tab 和 Click 的人添加此内容。

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 事件

于 2014-11-20T16:13:27.980 回答
4

我环顾四周,我遇到了同样的问题,这对我有用,首先选择项目,第二个选择文本,希望对未来有所帮助

myNumericUpDown.Select();
 myNumericUpDown.Select(0, myNumericUpDown.Value.ToString().Length);
于 2014-11-08T04:10:25.860 回答
2

我创建了一个扩展方法来实现这一点:

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
于 2012-10-15T15:54:21.457 回答
0

我有多个 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 Event 相关联(我没有这样做),我的目标就实现了。我花了一段时间才弄清楚,因为我是初学者。希望这可以帮助别人

于 2017-01-12T13:40:52.190 回答
0

为了通过鼠标单击或 Tab 按钮选择所有文本,我使用:

    public frmMain() {
        InitializeComponent();
        numericUpDown1.Enter += numericUpDown_SelectAll;
        numericUpDown1.MouseUp += numericUpDown_SelectAll;
    }

    private void numericUpDown_SelectAll(object sender, EventArgs e) {
        NumericUpDown box = sender as NumericUpDown;
        box.Select(0, box.Value.ToString().Length);
    }
于 2021-01-15T07:50:23.000 回答
-1

尝试

 myNumericUpDown.Select(0, myNumericUpDown.Value.ToString().Length);
于 2014-09-16T12:11:00.757 回答