Foxtable(狐表)用户栏目专家坐堂 → [讨论]同样的“保存行”代码,为啥执行结果不一样?


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

主题:[讨论]同样的“保存行”代码,为啥执行结果不一样?

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


加好友 发短信
等级:婴狐 帖子:17 积分:183 威望:0 精华:0 注册:2016/10/16 11:02:00
[讨论]同样的“保存行”代码,为啥执行结果不一样?  发帖心情 Post By:2016/10/25 22:58:00 [只看该作者]

做了一个主窗口“录入界面”,在所属表“表A”的 BeforeSaveDataRow 事件中写了如下代码做测试:

MessageBox.Show(e.DataRow("姓名"))
If Tables("表A").Current("姓名") <> "11" Then
    MessageBox.Show("数据不符合校验")
End If

 

然后分别通过两种方法添加了保存按钮:

方法1:通过 菜单设计 在功能区-功能组 中添加了一个按钮,click事件添加如下代码:

Tables("表A").Current.Save()

 

方法2:在主窗口“录入界面”上添加一个标准按钮,click事件添加同样的如下代码:

Tables("表A").Current.Save()

 

现在我在主窗口“录入界面”中“姓名”文本框中输入“11”,在焦点不离开姓名文本框的情况下,点击功能区的保存按钮时,MessageBox.Show(e.DataRow("姓名"))  返回的是空值;而点击窗口上的保存按钮时,能正确返回值,即 MessageBox.Show(e.DataRow("姓名"))  返回的是“11”;

如果在姓名文本框中输入“11”后,焦点离开文本框,则此时点击两个保存按钮的结果是一致的,都能正确返回“11”。

 

请问在焦点不离开文本框的情况下,为什么功能区的保存按钮执行后返回的结果不对呢?


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110608 积分:562942 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/25 23:09:00 [只看该作者]

点击窗口上的保存按钮时焦点离开了文本框,点击能区的保存按钮时焦点不会离开文本框。只有焦点离开值才会更新

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


加好友 发短信
等级:婴狐 帖子:17 积分:183 威望:0 精华:0 注册:2016/10/16 11:02:00
  发帖心情 Post By:2016/10/25 23:13:00 [只看该作者]

以下是引用有点蓝在2016/10/25 23:09:00的发言:
点击窗口上的保存按钮时焦点离开了文本框,点击能区的保存按钮时焦点不会离开文本框。只有焦点离开值才会更新

原来如此!那这样的话,保存按钮不宜设计在功能区吗?


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110608 积分:562942 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/26 8:35:00 [只看该作者]

像这种窗口编辑的,还是在窗口保存的好

 回到顶部