以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- NumericComboBox的Leave事件的一个问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=107246) |
-- 作者:andy-1024 -- 发布时间:2017/9/24 4:09:00 -- NumericComboBox的Leave事件的一个问题 请问老师: 由于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了吗? 这是怎么回事呢? 谢谢老师! |
-- 作者:有点甜 -- 发布时间:2017/9/24 22:38:00 -- enter事件给label赋值存放旧值;
level事件对比两个值,执行你的操作。 |
-- 作者:andy-1024 -- 发布时间:2017/9/25 4:25:00 -- 回复:(有点甜)enter事件给label赋值存放旧值;&n... 是啊,老师,我就是这么做的呀,但是为什么离开控件后,控件的值还是改动之前的呢? |
-- 作者:andy-1024 -- 发布时间:2017/9/25 4:34:00 -- 脱离开我开发的程序,我新建了一个测试窗口,如下图,初始值设为21,鼠标进入控件,改为22,离开控件后,输出控件内容,还是21,咋回事呢? |
-- 作者:有点甜 -- 发布时间:2017/9/25 8:53:00 -- e.Sender.Value 改成 e.Sender.Text |