我不明白为什么这不起作用,而这里的其他问题和答案并没有给我一个答案。
我有一个带有2个列表框的简单项目。一个名为lList,另一个命名为lListH。
以下工作如下:
function MyFunction (byval lList as listbox, byval lListH as listbox)
lList.Items.Add("Visible list")
lListH.Items.Add("Hidden List")
end Function
下面是我想要使用的,但是它不起作用:
function MyFunction (byval lList as listbox)
Dim sControlName = lList.Name & "H"
Debug.Print(sControlName) 'Outputs lListH as expected
Dim lListH As ListBox = CType(Me.Controls(sControlName), ListBox)
lList.Items.Add("Visible list")
lListH.Items.Add("Hidden List") 'error on this line: System.NullReferenceException, 0x80004003
end Function
发布于 2022-01-15 15:03:33
最有可能的解释是,ListBox
不是直接在表单上,而是在其他容器中,例如Panel
。这意味着它位于该容器的Controls
集合中,而不是表单的集合中。您还可以调用表单的Find
集合的Controls
方法来搜索它及其子集合。注意,这将返回一个Control
数组,因为在不同的容器中可能有多个名称相同的控件。
https://stackoverflow.com/questions/70722468
复制相似问题