Vb.net遍历字典以刷新列表框项属性

时间:2019-02-17 00:47:42

标签: vb.net dictionary

我正在尝试创建一个排序的字典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

1 个答案:

答案 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事件/过程中