找回密码
 立即注册

QQ登录

只需一步,快速开始

ZenosZeng 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-4-24 13:39  /   查看:8233  /  回复:7
昨天我安装了您提供的日文体验版,测试的结果是0行0列的时候,.ActiveRowIndex的返回值是-1,这与7.0版本是一致的。

但是昨天从日本GrapeCity给我回信的内容来看。他们说从5.0版本开始0行0列的时候,.ActiveRowIndex的返回值才是-1。
2.5版本应该返回0。所以想确认一下,谢谢!

7 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-4-24 14:14:00
沙发
回复 1楼dof的帖子

你好,

在 Spread 英文版 V7 和 V2.5 分别测试,当 RowCount 和 ColumnCount 为 0 时,V7 的 ActiveRowIndex 属性为 -1 而 V2.5 的 ActiveRowIndex 属性为 0。

所以,我这边的测试结果和日本同事提供的信息是一致的。

谢谢
回复 使用道具 举报
ivan
初级会员   /  发表于:2014-4-24 14:23:00
板凳
我这边用以下网址下载的日文版Spread V2.5 创建一个最简单的vb Form应用,在画面onload方法设置
RowCount 和 ColumnCount 为 0,在一个button事件中弹出3信息,分别显示当前Spread表格的ActiveRowIndex ,RowCount和ColumnCount ,结果显示依次为:-1,0,0,测试方法正确吗?
代码如下:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.FpSpread1_Sheet1.RowCount = 0
        Me.FpSpread1_Sheet1.ColumnCount = 0
        'MessageBox.Show(Me.FpSpread1_Sheet1.ActiveRowIndex)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show(Me.FpSpread1_Sheet1.ActiveRowIndex)
        MessageBox.Show(Me.FpSpread1_Sheet1.RowCount)
        MessageBox.Show(Me.FpSpread1_Sheet1.ColumnCount)
        'Me.FpSpread1_Sheet1.Cells(0, 10).Invalidate()
    End Sub
End Class
回复 使用道具 举报
ivan
初级会员   /  发表于:2014-4-24 14:35:00
地板
回复 2楼iceman的帖子

您好,首先感谢您的解答。
我这边用以下网址下载的日文版Spread V2.5 创建一个最简单的vb Form应用,在画面onload方法设置
RowCount 和 ColumnCount 为 0,在一个button事件中弹出3信息,分别显示当前Spread表格的ActiveRowIndex ,RowCount和ColumnCount ,结果显示依次为:-1,0,0,测试方法正确吗?
代码如下:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.FpSpread1_Sheet1.RowCount = 0
        Me.FpSpread1_Sheet1.ColumnCount = 0
        'MessageBox.Show(Me.FpSpread1_Sheet1.ActiveRowIndex)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MessageBox.Show(Me.FpSpread1_Sheet1.ActiveRowIndex)
        MessageBox.Show(Me.FpSpread1_Sheet1.RowCount)
        MessageBox.Show(Me.FpSpread1_Sheet1.ColumnCount)
        'Me.FpSpread1_Sheet1.Cells(0, 10).Invalidate()
    End Sub
End Class
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-4-24 14:37:00
5#
回复 3楼ivan的帖子

恩,这种测试方法是正确的。

请问您现在有什么顾虑呢?如果升级到 V7,只需要先判断 ActiveRowIndex >= 0 后在进行其他操作即不会抛出异常。
回复 使用道具 举报
ivan
初级会员   /  发表于:2014-4-24 14:47:00
6#
回复 5楼iceman的帖子

根据以下GrapeCity官网提供的Spread升级说明内容来看,明确说明了从2.5升级到7.0后的ActiveRowIndex的返回值的差异(第三页的第四条),这样我们在做升级的时候参照这个文档,在原有source的基础上要根据具体逻辑来进行升级的对应。所以要明确原来版本的确切的返回值,来判断原来业务逻辑的走向,从而决定升级之后,是否需要修改程序的判断条件等,并不是简单回避返回值为-1的情况。
http://download2.grapecity.com/P ... dwin7_migration.pdf
回复 使用道具 举报
ivan
初级会员   /  发表于:2014-4-24 14:56:00
7#
回复 5楼iceman的帖子

您好,刚刚收到了GrapeCity日本方面的回信,2.5版本中关于ActiveRowIndex 的返回值根据不同的版本是不同的。。。。。
V2.5.1005.2002 / 0
V2.5.1012.2002 / 0
V2.5.1014.2002 / 0
V2.5.1015.2002 / 0
V2.5.1016.2002 / 0
V2.5.1017.2002 / -1
V3.0.2006.2005 / 0
          ?
          ?
V5.0.2003.2008 / -1
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-4-24 15:34:00
8#
回复 7楼ivan的帖子

恩,感谢您的详细解释。
现在有一个情况是可以确认的,如果行列数都为 0 时,代码中调用 Cell[0,0] 是会报错的。

有其他问题欢迎您继续交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部