星空网 > 软件开发 > ASP.net

ShowDialog函数与Form的Activated函数同时使用的陷阱

  当我们需要在form启动之时,焦点显示在特定的控件“btn”上,我们可以先将btn的TabIndex设为0,然后要确保它visible=true,最后在Form的Activated事件方法中btn.GetFocus().

一般这样来说是已经万无一失的。但当这个form要以模态窗口显示时,我们就要注意Activated事件方法里面的代码了,如果该方法里含有一些复归操作,那你可能就神不知鬼不觉的会被莫名其妙

的bug缠住不放了。这一切是因为当Form以模态窗口出现时,Form一直在获取焦点,Activated函数会被连续不断的调用,自然也就一直在复归。

  试验方法,

模态显示:

Form1 myForm=new Form1();myForm.ShowDialog();

myForm的Activated函数:

 private void Form1_Activated(object sender, EventArgs e)    {      MessageBox.Show("wtf");    }

运行发现MessageBox一直出现。

此时可以使用Shown事件来代替Activated事件解决问题,Shown事件发生在窗体的第一次显示,且Shown事件发生时,Form里的所有控件都已准备完毕,不存在focus控件不起作用的问题。




原标题:ShowDialog函数与Form的Activated函数同时使用的陷阱

关键词:函数

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

lazada跨境电商官网:https://www.goluckyvip.com/tag/85672.html
印尼lazada官网:https://www.goluckyvip.com/tag/85673.html
来赞达 lazada官网:https://www.goluckyvip.com/tag/85674.html
lazada跨境官网:https://www.goluckyvip.com/tag/85675.html
lazada入驻官网:https://www.goluckyvip.com/tag/85676.html
lazada菲律宾官网首页:https://www.goluckyvip.com/tag/85677.html
斥资210万美元,TikTok游说美国参议院阻止法案:https://www.kjdsnews.com/a/1836541.html
斥资210万美元,TikTok游说美国参议院阻止法案:https://www.goluckyvip.com/news/188213.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流