黑马程序员技术交流社区

标题: 文本框获取到焦点的一个执行过程 [打印本页]

作者: 冯华亮    时间: 2012-8-6 21:30
标题: 文本框获取到焦点的一个执行过程
因为我在写程序遇到一个问题,所以自己写了一个简单的测试。
加入两个文本框,添加得到焦点的事件。然后分别设置textBox1,textBox2的TabIndex为1和2,

C# code

private void textBox1_Enter(object sender, EventArgs e)
        {
            string str = "";
        }

private void textBox2_Enter(object sender, EventArgs e)
        {
            string str = "";
            textBox1.Focus();
        }



运行程序,默认textBox1得到的焦点,当我按Tab时直接用鼠标单击textBox2时,按道理代码执行过程是
textBox2_Enter()--textBox1_Enter()--结束,但是当按Tab时,textBox1_Enter()会连续执行两次;当用鼠标单击textBox2执行过程更复杂,textBox2_Enter--textBox1_Enter--textBox1_Enter--textBox2_Enter--textBox1_Enter--textBox1_Enter--结束
为什么会这样,我希望是textBox2_Enter()--textBox1_Enter()--结束  就行了啊,,
作者: 樊占江    时间: 2012-8-7 00:08
你可以可以利用TabIndex属性,form上所有的的控件都有TabIndex,值是数字,该值是设置按Tab键会切换到哪一个控件。
你可以把TextBox1的TabIndex属性设置为0,其他控件的依次按顺序累加,这样窗体加载就会自动定位到TextBox1中。所有控件的这个属性的值不要重复,否则以最后设置的那个为准

希望答案对你有用




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2