以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 文本框的焦点判断问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83698) |
-- 作者:凡夫俗子 -- 发布时间:2016/4/14 18:33:00 -- 文本框的焦点判断问题 我想在一个文本框的 ValueChanged 事件中实现 值有改变后 执行一些代码 If e.Sender.Focused Then msgbox(1) 执行代码 ...... end if 就是想如果焦点在该文本框中时,值 改变才执行代码, 否则不执行代码 这样写为啥不起作用,无论怎么样 1 都不显示。
[此贴子已经被作者于2016/4/14 18:36:58编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/4/14 19:14:00 -- 你可以去编写 TextChanged 事件。 |
-- 作者:凡夫俗子 -- 发布时间:2016/6/21 15:21:00 -- ValueChanged 为何不支持 焦点判断呢 放在TextChanged 事件中 是有执行 要在ValueChanged 事件中才满足要求 就是要实现在文本框中手工输入值才执行相关代码,如果是非焦点单元格下面的变化就不执行代码
|
-- 作者:大红袍 -- 发布时间:2016/6/21 15:25:00 -- 在TextChanged事件也可以判断焦点是否在文本框里面啊。 |
-- 作者:凡夫俗子 -- 发布时间:2016/6/21 15:28:00 -- 这个是可以判断不错,问题是里面的字符每变化一个就执行一次 太频繁了 [此贴子已经被作者于2016/6/21 15:34:54编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/6/21 15:31:00 -- 那你可以在Enter事件记录一下
vars("焦点") = True
然后在ValueChanged事件,判断和把值改成false |
-- 作者:凡夫俗子 -- 发布时间:2016/6/21 15:42:00 -- 一个小的重要的基本功能判断需要在多处写代码,强烈要求官方优化一下程序 |
-- 作者:大红袍 -- 发布时间:2016/6/21 15:44:00 -- 汗,ValueChanged就是焦点离开时触发的。
你自己的需求有问题没理由要求人家改事件啊 |
-- 作者:凡夫俗子 -- 发布时间:2016/6/21 15:50:00 -- 以下是引用大红袍在2016/6/21 15:31:00的发言:
那你可以在Enter事件记录一下
vars("焦点") = True
然后在ValueChanged事件,判断和把值改成false 这样做有个问题不好处理: 操作可能是: 手动选择了该控件 Enter 执行了vars("焦点") = True 了,但用户没有任何操作就选择了其它的控件 这个时候通过代码修改了该控件的值 ,则ValueChanged判断为是 手工处理的了。 这就要再在另一个地方加代码了,在哪里加呢,在Leave中加是不行的,Leave事件发生在ValueChanged之前 另一种方法是在 TextChanged 事件中加代码 可以较好地解决,但理论上每录入一个字符就执行一次,貌似没更好的方法了 |
-- 作者:凡夫俗子 -- 发布时间:2016/6/21 15:51:00 -- 以下是引用大红袍在2016/6/21 15:44:00的发言:
汗,ValueChanged就是焦点离开时触发的。
你自己的需求有问题没理由要求人家改事件啊 焦点离开时触发是触发了,但不分时机的触发 问题是这个事件不能判断 该控件是否是焦点单元格了 [此贴子已经被作者于2016/6/21 15:51:43编辑过]
|