对象变量或未设置块变量,选择my.settings ArrayList的索引

时间:2012-08-21 16:18:54

标签: vb.net arraylist indexing

我正在尝试使用以下方式指定My.Settings中保存的ArrayList的索引

My.Settings("Sup" & Selectedsupplier).Item(0) = Convert.ToDouble(Margin1TextBox.Text)

我在指定索引时遇到问题,上面的代码给出了以下错误“对象变量或未设置块变量。”

我在My.Settings中有多个ArrayLists,名为Sup1,Sup2到Sup20现在我希望能够将名称中的数字指定为变量,我希望能够从所选的ArrayList中选择一些索引。

无论如何都要这样做?

1 个答案:

答案 0 :(得分:1)

您的示例没有问题。您遇到此错误的原因是未设置ArrayList设置对象。第一次运行应用程序时,需要通过为ArrayList设置分配新实例来初始化UserSetting

这是一个检查设置然后分配值的功能。

Private Sub SetSettingValue(ByVal settingName As String, ByVal itemIndex As Integer, ByVal value As Double)
    Dim setting As ArrayList

    If (My.Settings(settingName) Is Nothing) Then
        My.Settings(settingName) = New ArrayList
    End If

    setting = CType(My.Settings(settingName), ArrayList)

    If (itemIndex >= setting.Count) Then
        Do
            setting.Add(Nothing)

        Loop While (itemIndex >= setting.Count)
    End If

    setting(itemIndex) = value
End Sub