0

次の方法で My.Settings に保存された ArrayList のインデックスを指定しようとしています

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

インデックスの指定に問題があり、上記のコードは次のエラー「オブジェクト変数またはブロック変数が設定されていません」を返します。

Sup1、Sup2 から Sup20 までの名前の My.Settings に複数の ArrayLists があります。名前に番号を変数として指定できるようになり、選択した ArrayList からいくつかのインデックスを選択できるようにしたいと考えています。

とにかくこれを行うことはありますか?

4

1 に答える 1

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
于 2012-08-21T18:45:42.193 に答える