如何设置选项卡按钮以选择C#中所有WinForms NumericUpDown中的整个文本

时间:2013-06-15 13:45:23

标签: c# select text tabs numericupdown

我的要求:

当有人按下TAB按钮并移动到我的表单中的NumericUpDown控件时,要选择的整个文本,我搜索了很多,我发现了这个:

private void numericUpDown1_Enter(object sender, EventArgs e)
    {
        numericUpDown1.Select(0, numericUpDown1.ToString().Length);
    }

我需要一些能够完成所有这些工作的代码,因为我的表单有大约50个NumericUpDown控件 我试过这样的事情:

private void System.Windows.Forms.NumericUpDown_Enter(object sender, EventArgs e)
    {
        System.Windows.Forms.NumericUpDown.Select(0, 2);
    }

但出现了两个错误:

Error 2 An object reference is required for the non-static field, method, or property 'System.Windows.Forms.UpDownBase.Select(int, int)' P:\myWork\C#\sudoku\sudoku\Form1.cs 42 13 sudoku

Error 1 The modifier 'public' is not valid for this item P:\myWork\C#\sudoku\sudoku\Form1.cs 40 21 sudoku

1 个答案:

答案 0 :(得分:0)

您需要通过NumericUpDown参数访问传递给事件的sender控件的实例。试试这个:(未经测试)

(另外,从事件名称的开头删除System.Windows.Forms。)

private void NumericUpDown_Enter(object sender, EventArgs e)
{
    var numUpDownControl = sender as System.Windows.Forms.NumericUpDown;

    if (numUpDownControl != null)
        numUpDownControl.Select(0, 2);
}

如果要在控件中选择整个值(而不仅仅是前两个数字),请相应地更改Select语句:

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