C#设置焦点在文本框上

时间:2016-02-12 07:22:27

标签: c# textbox focus controls

我试图设置" txtMiles"要关注的文本框: (1)表格打开 (2)单击清除按钮时

我尝试过使用txtMiles.Focus();但它似乎对我不起作用。

*************在本表格上使用的代码**************************** *****

        private void btnConvert_Click(object sender, EventArgs e)
        {
            //assigns variable in memory.
            double txtMile = 0;
            double Results;

            try
            {
                // here is where the math happens.
                txtMile = double.Parse(txtMiles.Text);
                Results = txtMile * CONVERSION;
                lblResults.Text = Results.ToString("n2");
                txtMiles.Focus();
            }
                // if the user enters an incorrect value this test will alert them of such.
            catch
            {
                //MessageBox.Show (ex.ToString());
                MessageBox.Show("You entered an incorrect value");
                txtMiles.Focus();
            }
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            //This empties all the fields on the form.
            txtMiles.Text = "";
            txtMiles.Focus();
            lblResults.Text = "";
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
           // closes program
            this.Close();
        }
    }
}

提前感谢您的帮助。

4 个答案:

答案 0 :(得分:6)

您应该确保TabIndex设置为然后而不是MapReduce,请尝试使用Focus()。请参阅此MSDN link

Select()

还要确保视图文件中没有设置txtMiles.Select(); 属性。

答案 1 :(得分:2)

点击清除按钮后,您已经将焦点对准了txtMiles。至于Startup,在你的load方法中设置txtMiles.Focus()。

private void MilesToKilometers_Load(object sender, EventArgs e)
{
    txtMiles.Focus();
}

答案 2 :(得分:1)

它已经过时了,但有人可能需要这个。

Control.Focus()被窃听。如果它不起作用,请尝试解决方法:

this.SelectNextControl(_controlname, true, true, true, true);

更改功能参数,使它们与您的控件一起使用,并记住控件的TabStop = true属性。

答案 3 :(得分:0)

使用此解决方案效果很好...

txtMiles.Select();