1

我的要求:

当有人按下 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

4

1 回答 1

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);
于 2013-06-15T13:50:46.700 回答