我想将控件名称传递给子过程。
LoadDetails grid1
Sub LoadDetails(grid1 as string)
Dim a as control
a = grid1
...
上面的代码显示错误为
对象变量或未设置块变量
如何解决这个问题呢。
需要vb6代码帮助
我想将控件名称传递给子过程。
LoadDetails grid1
Sub LoadDetails(grid1 as string)
Dim a as control
a = grid1
...
上面的代码显示错误为
对象变量或未设置块变量
如何解决这个问题呢。
需要vb6代码帮助
您正在尝试将字符串 (grid1) 分配给控件 (a)。如果可以,请传递控件本身而不是控件的名称:
LoadDetails grid1 'grid1 is here of type Control
Sub LoadDetails(a as Control)
...
grid1 现在是控件而不是控件的名称。您将需要更改代码之前LoadDetails grid1
。如果您知道控件的类型,那就更好了。例如,如果控件是 MSFlexGrid,则可以使用:
LoadDetails grid1 'grid1 is a MSFLexGrid
Sub LoadDetails(a as MSFlexGrid)
'Do stuff with the grid
如果无法传递控件本身,则可以使用此方法查找具有给定名称的控件:
Me.Controls(sName)
(感谢 Deanna 指点我这个函数)
在您的代码中:
LoadDetails grid1 'grid1 is here a string, like in your original code
Sub LoadDetails(grid1 as string)
Dim a as control
a = Me.Controls(grid1)
...
你的参数不正确。您应该像这样更改它(带有文本框控件的示例)。
Private Sub HighlightText(ByRef txtBox As TextBox)
txtBox.SelStart = 0
txtBox.SelLength = Len(txtBox.Text)
End Sub
该代码示例将突出显示文本框控件的内容。不过,重要的部分是您可以将参数声明为控件类型,然后直接在子程序中使用它。