请问这个代码:textBox2.Focus();为什么不能使控件得到焦点?焦点还在别的控件上。谢谢。

解决方案 »

  1.   

    我在窗口 FrmLogin_Load事件中
      

  2.   

    你想一进窗体就让Textbox2获得焦点,不是这样设置的,而是将Textbox2的TabIndex设置为最小就可以了
      

  3.   

    TextBox2.Focus(),这个获取焦点我都是在提交时才使用的- -
      

  4.   

    我窗口上有一个combobox控件,还有一个textbox控件,我设置tab顺序为combobox是0,textbox是1,然后我在窗口的 private void FrmLogin_Load(object sender, EventArgs e)事件中代码如下:SqlConnection conn = BaseClass.DBConnect.connect();
                conn.Open();
                SqlDataAdapter da = new SqlDataAdapter("select * from tb_employee", conn);
                DataTable dt = new DataTable();
                da.Fill(dt);
                this.comboBox1.DataSource = dt.DefaultView;
                comboBox1.DisplayMember = "name";
                comboBox1.SelectedIndex = 0;
                conn.Close();            textBox2.Focus();可是打开窗口后还是combobox先得到焦点,不是textbox得到焦点。请问为啥啊?
      

  5.   

    你测试下就知道,我发现打开窗体的时候焦点都是在tab最小的那个控件上,如果你最小的tab是个label控件,就算你下面写那些获取焦点,你会发现界面上的那些控件都没有得到焦点,而实际上的焦点是在label上,楼主试下,还是把tab调换下
      

  6.   

    确实如楼上bellei120428所说,看来在窗口的private void FrmLogin_Load(object sender, EventArgs e)事件中,textbox.focus()不起作用。最后还是tab顺序起的作用。是不是可以认为是tab顺序在窗口load事件后起作用,所以改变了load事件中focus的效果。
      

  7.   

    TextBox2.TabIndex = 1;
    TextBox2.Focus();
      

  8.   

    而且我还发现tabindex值为0,比1是先得到焦点的。
      

  9.   

    楼至,Tab是从0开始的额- -,反正拖入Form的第一个控件的Tab为0,后面除非手动去改,不然会自增长下去