Foxtable(狐表)用户栏目专家坐堂 → NumericComboBox的Leave事件的一个问题


  共有1741人关注过本帖树形打印复制链接

主题:NumericComboBox的Leave事件的一个问题

帅哥哟,离线,有人找我吗?
andy-1024
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:182 积分:1592 威望:0 精华:0 注册:2016/11/10 10:14:00
NumericComboBox的Leave事件的一个问题  发帖心情 Post By:2017/9/24 4:09:00 [只看该作者]

请问老师:
由于NumericComboBox控件的e参数没有NewValue和OldValue属性,我自己写了一段代码用于判断数值是否变化,如果数值变化了,有一个按钮可用,如果数值没有变化,按钮不可用。
我是在Leave事件中加入的代码:

Dim Old As WinForm.Label = e.Form.Controls("LOld")         '定义一个Label用于存储旧值,并且Old在此控件的Enter事件中被赋予旧值
Dim NmRPrice As WinForm.NumericComboBox = e.Form.Controls("NmRPrice")        '定义NumericComboBox控件
Dim btnOK As WinForm.Button = e.Form.Controls("btnok")             '定义需要根据数值变化而变化状态的按钮
MessageBox.Show(e.Sender.Value)                   '过程中临时输出数值,用于检查代码
If old.Text <> CStr(NmRPrice.Value) Then
    btnOK.Enabled = True
End If

保存完,打开窗口后,控件中初始值自动载入,比如为20,我将鼠标点入此控件,Old显示20,没有问题,
我重新设置数值为30,然后离开控件,此时弹出的MessageBox中显示,值还是20.
Leave事件不是在离开控件之后执行吗?如果离开控件了的话,值不是应该已经变为30了吗?
这是怎么回事呢?
谢谢老师!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/24 22:38:00 [只看该作者]

enter事件给label赋值存放旧值;

 

level事件对比两个值,执行你的操作。


 回到顶部
帅哥哟,离线,有人找我吗?
andy-1024
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:182 积分:1592 威望:0 精华:0 注册:2016/11/10 10:14:00
回复:(有点甜)enter事件给label赋值存放旧值;&n...  发帖心情 Post By:2017/9/25 4:25:00 [只看该作者]

是啊,老师,我就是这么做的呀,但是为什么离开控件后,控件的值还是改动之前的呢?

 回到顶部
帅哥哟,离线,有人找我吗?
andy-1024
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:182 积分:1592 威望:0 精华:0 注册:2016/11/10 10:14:00
  发帖心情 Post By:2017/9/25 4:34:00 [只看该作者]

脱离开我开发的程序,我新建了一个测试窗口,如下图,初始值设为21,鼠标进入控件,改为22,离开控件后,输出控件内容,还是21,咋回事呢?


图片点击可在新窗口打开查看此主题相关图片如下:error.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/25 8:53:00 [只看该作者]

e.Sender.Value 改成 e.Sender.Text

 回到顶部