如何在选项卡中选择Winforms NumericUpDown中的所有文本?

Aid*_*yan 54 .net c# numericupdown winforms

当用户NumericUpDown选中我的时候,我希望选择所有文本.这可能吗?

Jon*_*n B 117

private void NumericUpDown1_Enter(object sender, EventArgs e)
{
    NumericUpDown1.Select(0, NumericUpDown1.Text.Length);
}
Run Code Online (Sandbox Code Playgroud)

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

  • @Jon:Darn intellisense: - /使用Text属性调用. (15认同)
  • 我只是在表单构造期间尝试这样做(将焦点设置为特定的NumericUpDown并选择其所有文本).我不得不调用`Select()`AND`Select(0,NumericUpDown1.Text.Length);`,第一个设置焦点,第二个选择文本.所以,给来这里寻找方法去做我正在做的事情的其他人的一个注意事项:你必须让这两个调用得到你想要的结果,即使它们都被命名为同一个东西(我一直期待这个电话) to`Select(start,length)`也设置焦点,如'Select()`did) (7认同)
  • “如果您使用 Tab 键将控件聚焦,则此代码可以正常工作,但如果您通过单击将其聚焦,尽管它通过了该方法,但它不会选择文本。我的猜测是,此代码在某些操作之前被调用将光标重置选择的内部框架代码。要绕过此问题,您可以将相同的代码放入单击事件处理程序中“,`n0n4m3`http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/线程/28354bc2-3903-4be4-9c2c-3249319b59fd (2认同)
  • 如果它有小数点,则使用 *NumericUpDown1.Select(0, NumericUpDown1.Value.ToString().Length + NumericUpDown1.DecimalPlaces + 2);* 根据它在 Click 中使用的小数点数量更改 *2* NumericUpDown1 的输入事件 (2认同)

Bri*_*ink 9

我想为将来搜索Tab和Click的人添加这个.

Jon B的回答非常适合Tab,但我需要修改以包含click

如果您选中或单击,下面将选择文本.如果单击并输入框,则会选择文本.如果您已经专注于该框,则单击将执行通常所做的操作.

    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;
        }
    }
Run Code Online (Sandbox Code Playgroud)

您可以将它用于多个numericUpDown控件.只需要设置Enter和MouseDown事件