关于设置输入焦点的问题

gwhzh 2008-09-17 08:49:42
前两个星期测试我写的mobile应用程序,发现一个严重的Bug.有一个对象在传值过程中被突然丢失了.研究了两个星期,没有去解决这个问题,因为这个问题据我所想的,有两种解法.所以这个星期写了一例子,来研究这个问题产生的原因.
在启动窗体里面写的代码
private Form3 objfrm3 = null;
private void button4_Click(object sender, EventArgs e)
{
if ( objfrm3 == null )
{
objfrm3 = new Form3();
}
objfrm3.Owner = this;
//objfrm3.WhichOne = 400;
objfrm3.ShowDialog();
}

在Form3里面写的代码
private void textBox1_GotFocus(object sender, EventArgs e)
{
Debug.WriteLine("Box1");
}

private void textBox2_GotFocus(object sender, EventArgs e)
{
Debug.WriteLine( "Box2" ); }

private void Form3_Load(object sender, EventArgs e)
{
Debug.WriteLine("Load");
this.Show();
this.textBox1.Focus();
}

private void textBox1_LostFocus(object sender, EventArgs e)
{
Debug.WriteLine("Box1 leave");
}

private void textBox2_LostFocus(object sender, EventArgs e)
{
Debug.WriteLine( "Box2 leave" );
}

动作如下,运行程序,单击Button4
打印了:
Load
Box1
然后单击了TextBox2
打印了:
Box1 leave
Box2
Form3右上角的ok,关闭了Form3
打印了:
Box2 leave
再次单击Button4
打印了:
Load
Box2
Box2 leave
Box1
问题就在这里,为什么textBox2_GotFocus要先被调用?
...全文
98 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
lzhoney 2008-09-17
  • 打赏
  • 举报
回复
在form2的formclosing事件里加上textbox1.focus();就可以了 似乎是像都上说的那样
wjq 2008-09-17
  • 打赏
  • 举报
回复
我估计是这样的,
你的form3只创建一次实例,第一次关掉后,最后焦点是在textbox2上的,关掉form3,当然textbox2失去焦点,这是自动的,而不是人为改变活动控件
你再次打开form3,最后焦点是在textbox2上的,所以打开form3的时候,它直接得到焦点.但你的textbox1的tabindex肯定最小,默认焦点应该落在应该是textbox1上,于是,系统重新把焦点给了textbox1
lzhoney 2008-09-17
  • 打赏
  • 举报
回复
是不是两个textbox的tabindex反了?box2的tabindex比box1的小 所以先把焦点给了box2,然后你再box.focus(),再把焦点给了box1
liang4571231 2008-09-17
  • 打赏
  • 举报
回复
抢沙发,帮顶顶
通过慢sql分析的学习,了解什么是慢sql,以及慢SQL会引起那些性能问题。清楚慢sql日志的设置,然后再通过慢sql分析工具的学习,清楚慢sql分析的步骤和流程。慢sql分析工具:mysqldumpslow工具、explain工具、profile工具、Optimizer Trace工具。 提供课程中所使用的sql语句。 课程内容:第一章:课程简介1、课程介绍2、课程大纲 第二章:慢sql简介1、慢sql简介2、慢sql会引起的问题 第三章:慢日志的设置1、慢sql的分析流程2、慢日志参数理解3、慢日志参数设置:第1种方式:my.ini文件设置4、慢日志参数设置:第2种方式:sql脚本设置5、慢日志参数设置-效果验证 第四章:如何发现慢sql1、如何发现慢sql:第1种方式:慢日志文件2、如何发现慢sql:第2种方式:mysql库的slow_log表 第五章:慢sql分析工具1、慢sql提取-mysqldumpslow工具-使用方法2、慢sql提取-mysqldumpslow工具-操作实战3、慢sql的执行计划分析-explain分析-执行计划结果说明4、慢sql的执行计划分析-explain分析-索引介绍+type类型举例5、慢sql的资源开销分析-profile分析-分析步骤6、慢sql的资源开销分析-profile分析-show profile执行阶段说明7、慢sql的资源开销分析-profile分析-完整列表说明+操作实战8、慢sql的跟踪分析-Optimizer Trace分析-分析步骤9、慢sql的跟踪分析-Optimizer Trace表的介绍10、索引失效场景举例 第六章:慢日志清理1、慢日志清理

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧