| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 696 人关注过本帖
标题:控件得到或失去焦点的讨论
只看楼主 加入收藏
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:658
专家分:2180
注 册:2014-2-7
收藏
得分:0 
对于一个控件来说,事件的顺序是 When、GotFocus、Valid、LostFocus。
对于两个独立的TextBox来说,我们假定当前活动控件为A,现在单击控件B,使B获得焦点,则事件的顺序为:A.Valid、B.When、A.LostFocus、B.GotFocus。一定要注意:B控件的When事件发生在上一个控件A的LostFocus之前。

对于一个是Text1,另一个是Grid1.Column1.Text1来说,情况确实有所不同:

1. 将焦点由Text1 切换到 Grid1.Column1.Text1,则事件的发生顺序是:
   Text1.Valid
   Text1.LostFocus
   Grid.Text1.When
   Grid.Text1.GotFocus

2. 将焦点由Grid1.Column1.Text1 切换到 Text1,则事件的发生顺序是:
   Text1.When
   Grid.Text1.Valid
   Grid.Text1.LostFocus
   Text1.GotFocus

由此来看,表格中的文本框的事件发生顺序与两个独立的文本框有很大的不同,确实不好理解,只能作特殊情况处理。

[此贴子已经被作者于2015-10-27 09:02编辑过]

收到的鲜花
  • wcx_cc2015-10-27 21:16 送鲜花  5朵   附言:有用

泉城飞狐
2015-10-27 08:41
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
以下是引用liuxingang28在2015-10-27 08:20:31的发言:

Text1.Value ? 应该是 Text1.Valid 吧。Value 是属性,而 Valid 才是事件

多谢指正,是我粗心大意。
2015-10-27 09:20
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不是特例

授人以渔,不授人以鱼。
2015-10-27 09:47
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
這不是特例,而是之所以設計這許多事件的根本原因,就是需要那樣用,區別很細微,但必須區別開來,用途不同。

授人以渔,不授人以鱼。
2015-10-27 15:43
中国龙王
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:484
专家分:283
注 册:2006-5-17
收藏
得分:0 
这样子说来...有没有试一下或许跟他们在同一表单上的 TAB  顺序有关系......
要是把TEXT    GRID  的TAB  顺序交换一下不知道会是什么样子哟

不要为了打发无聊而做无聊的事!不要在虚幻的世界里做虚幻的事!
2015-10-29 19:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 15楼 中国龙王
正確的做法是把代碼按邏輯放在合適的事件位置,而不是企圖在一個事件或方法中做全所有事情。

授人以渔,不授人以鱼。
2015-10-29 19:55
中国龙王
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:484
专家分:283
注 册:2006-5-17
收藏
得分:0 
呵呵原来是这个意思...我基本上都是放在 WHEN  和VALID 这两个里..其他都不放..
这样子就怕漏..要修改也方便........

不要为了打发无聊而做无聊的事!不要在虚幻的世界里做虚幻的事!
2015-10-29 19:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 17楼 中国龙王
因爲知道你是這樣,才說上面的話。其實這些做法,我一直都有在發出來的代碼中給了示範,從來沒人問的,說複雜、方法代碼太多的倒不少。絕大多數人都有這種懶根,從使用向導、拖拉法編程開始,養成這種慣性,到細微問題來了,就不知道那些現成的東西内在到底是怎麽做出來,連稍作修改也不會,當然啦,平時是衹會使用不問原理的。

授人以渔,不授人以鱼。
2015-10-29 20:04
快速回复:控件得到或失去焦点的讨论
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.066523 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved