我正在尝试创建一个排序的字典libraries
,它将在其中填充一个图书馆的全名和首字母缩写(如果是建筑物名称)。但是,在访问我创建的数据并将其打印在列表框中时遇到问题。收到错误'Libraries' is not declared. It may be inaccessible due to its protection level.
,我认为这是由于范围问题导致Sub无法读取到Main中。为什么是这样?怎样才能找到我的字典才能打印?
我的错误发生在For Each
循环中,因为它无权访问In Libraries
public Class frmManager
Public Sub Main()
Dim Libraries As New SortedDictionary(Of String, String)
Libraries.Add("Zexrow Library", "ZRLB")
Libraries.Add("Williams Memorial Library", "WML")
Libraries.Add("Dervin Technical Repository", "DTR")
End Sub
Private Sub lstLibraries_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstLibraries.SelectedIndexChanged
lstLibraries.Items.Clear()
For Each library In Libraries
lstLibraries.Items.Add()
Next
End Sub
End Class
答案 0 :(得分:1)
将库从MAIN子对象(作用域)中切除,然后将其放入FORM(作用域)
public Class frmManager
Dim Libraries As New SortedDictionary(Of String, String)
Public Sub Main()
Libraries.Add("Zexrow Library", "ZRLB")
Libraries.Add("Williams Memorial Library", "WML")
Libraries.Add("Dervin Technical Repository", "DTR")
lstLibraries.Items.Clear()
For Each library In Libraries
lstLibraries.Items.Add(library.Key)
Next
End Sub
End Class
已编辑 编辑以确保您将列表框加载到Sub Main事件/过程中