A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯华亮 中级黑马   /  2012-8-6 21:30  /  3354 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

因为我在写程序遇到一个问题,所以自己写了一个简单的测试。
加入两个文本框,添加得到焦点的事件。然后分别设置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()--结束  就行了啊,,

1 个回复

正序浏览
你可以可以利用TabIndex属性,form上所有的的控件都有TabIndex,值是数字,该值是设置按Tab键会切换到哪一个控件。
你可以把TextBox1的TabIndex属性设置为0,其他控件的依次按顺序累加,这样窗体加载就会自动定位到TextBox1中。所有控件的这个属性的值不要重复,否则以最后设置的那个为准

希望答案对你有用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马