Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:新版对AddNew的处理方法似乎变了,明显不合理了

1楼
reachtone 发表于:2009/8/18 21:50:00
在老版中,用AddNew新增行、然后引发当前表的CurrentChanged事件。在CurrentChanged事件中,以下代码是可以正常通过的:

If e.Table.Current IsNot Nothing
    MessageBox.Show("当前Table共 " & e.Table.Rows.Count & "行! ")
    dim r as Integer = e.Table.Current.Index    '当前行
    e.Table.Select(r,0)   '选择当前行第一列
End If


但用了今天的新版以后,上面的代码就出错了。经认真分析发现,新版在执行了AddNew以后,Table的新增行已经产生,count也发生了变化,但这时该行并未加载进table,反而是先执行CurrentChanged事件,然后才加载行。

老版的执行顺序是:先新增行、然后加载该行、再执行CurrentChanged事件;
新版则是:先新增行、然后执行CurrentChanged事件、再加载该行。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


按新版的这种处理方法,上述代码只能改成这样。这样的代码看起来实在别扭:
If e.Table.Rows.Count > 1
    dim r as Integer = e.Table.Current.Index    '当前行
    e.Table.Select(r,0)   '选择当前行第一列
End If


期望老六还能改回原来的那种处理方式!
[此贴子已经被作者于2009-8-18 21:54:34编辑过]
2楼
czy 发表于:2009/8/18 23:01:00
奇怪,我没发现问题。
在两个版本中执行操作结果都是一样的。
3楼
mr725 发表于:2009/8/18 23:04:00
这样不会有问题了:但也不会提示了~
If e.Table.position >= 0 then
If e.Table.Current IsNot Nothing
    MessageBox.Show("当前Table共 " & e.Table.Rows.Count & "行! ")
    dim r as Integer = e.Table.Current.Index    '当前行 必须时可见的行
    e.Table.Select(r,0)   '选择当前行第一列
End If
End If
[此贴子已经被作者于2009-8-18 23:15:56编辑过]
4楼
reachtone 发表于:2009/8/19 8:18:00
加个position的判断确实是个好办法。
但我还是觉得,新版的这个变化有点没有道理。
5楼
狐狸爸爸 发表于:2009/8/19 8:30:00
呵呵,我抽空看看,不过有些变化我也没有办法控制的.
6楼
reachtone 发表于:2009/8/19 10:53:00
问题大了,连BeforeAddDataRow事件设置都有问题。看来这个AddNew还要老六认真对待一下,我现在关键的录入模块都出错了。
请老六看看这个例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

7楼
mr725 发表于:2009/8/19 12:44:00
6楼的问题存在~ 
8楼
狐狸爸爸 发表于:2009/8/19 13:02:00
下次更新可以了
共8 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .08594 s, 4 queries.