0

我想使用 .GetText(Col As Integer, Row As Integer, ByRef var As Object) 作为布尔方法。

但是当我使用这种方法时,总是出现运行时错误

我想给你看我的代码

With fGridview 
  For iCol = 1 To .MaxCols
      For iRow = 1 To .MaxRows
        .Col = iCol
        .GetText(iCol, iRow, tmpVar)
        If tmpVar = "0" Then
         .SetText(iCol, iRow, "1")
        End If
      Next
    Next
End with

如您所见,当 iCol=1,iRow=1 时,就可以了。但是当 iCol=1,iRow=2 时,出现运行时错误。我认为为什么会发生这种情况是因为 ByRef 参数。

如果我使用 tmpVar=nothing like this

 .GetText(iCol, iRow, tmpVar)
 If tmpVar = "0" Then
   .SetText(iCol, iRow, "1")
 End If
 tmpVar=nothing

,效果很好。我不知道为什么会这样。当我使用 ByRef 参数时,为什么我必须在 tmpVar 中不使用任何内容。我需要你的帮助。

和类型不匹配错误

这是VB 6.0代码

With fGridview
For iCol = 1 To .MaxCols
    For iRow = 1 To .MaxRows
        .Col = iCol
        .GetText iCol, iRow, tmpVar
        If tmpVar = "0" Then
        .SetText iCol, iRow, "1"
        End If
    Next
Next
End With

ps 我的英语不好。所以我不知道你能不能听懂我的话。无论如何,非常感谢

4

3 回答 3

1

根据他们网站上的这个帮助,GetText需要 ROW 索引作为第一个参数,COLUMN 索引作为第二个参数(SetText 也是如此)。
不存在第三个参数。您是否错误地使用了 VB6 中所需的语法,而不是 NET 组件所需的语法?

我可能是错的,因为我不使用这个组件,但也许你需要以这种方式更改你的代码

With fGridview 
  For iCol = 1 To .MaxCols
      For iRow = 1 To .MaxRows
        .Col = iCol
        tmpVar = .GetText(iRow, iCol)
        If tmpVar = "0" Then
         .SetText(iRow, iCol, "1")
        End If
      Next
    Next
End with

让我知道这是否能解决您的问题

于 2013-08-14T16:01:34.053 回答
1

史蒂夫 awnser 应该是正确的,但如果 GetText 真的返回一个布尔值,我想你会想做这样的事情

With fGridview 
  For iCol = 1 To .MaxCols
      For iRow = 1 To .MaxRows
        .Col = iCol
        If .GetText(iCol, iRow, tmpVar) Then
          If tmpVar = "0" Then
           .SetText(iCol, iRow, "1")
          End If
        End If
      Next
    Next
End with
于 2013-08-14T18:00:50.053 回答
1

Option Strict On如果您还没有这样做,请在源文件的顶部添加。VB.NET 实际上是根据“Option Strict”设置选择的两种截然不同的语言的名称。不幸的Option Strict Off是,方言是默认的,旨在促进 VB6 代码的移植,并且具有可怕的愚蠢语义,甚至比 VB6 更糟糕(我不确定它的设计者是否知道所有奇怪的极端情况不同类型交互);在那种方言中,不应该工作的代码有时会有点工作,这听起来就像你所看到的那样是很常见的。利用Option Strict On许多不应该工作的事情会产生错误而不是产生愚蠢的行为。可能必须添加一些烦人的类型转换以使某些应该工作的事情继续工作(例如,将Double坐标传递给采用 type 参数的绘图例程Single)但这比必须弄清楚代码在Option Strict Off模式下试图做什么要好得多。

于 2013-08-14T17:49:31.260 回答