Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET尝试读取My.Settings中的System.Collections.Specialized.StringCollection时返回InvalidOperationException_Vb.net_Invalidoperationexception_My.settings_Stringcollection - Fatal编程技术网

VB.NET尝试读取My.Settings中的System.Collections.Specialized.StringCollection时返回InvalidOperationException

VB.NET尝试读取My.Settings中的System.Collections.Specialized.StringCollection时返回InvalidOperationException,vb.net,invalidoperationexception,my.settings,stringcollection,Vb.net,Invalidoperationexception,My.settings,Stringcollection,在我的vb.net项目中,我使用visual studio中的内置设置管理器创建了以下设置: appVisible(布尔值) saveFusedFiles(布尔值) 颜色(System.Collections.Specialized.StringCollection) 分隔符(System.Collections.Specialized.StringCollection) 当尝试读取“颜色”或“分隔符”时,我得到一个InvalidOperationException,但读取布尔变量是有效的

在我的vb.net项目中,我使用visual studio中的内置设置管理器创建了以下设置:

  • appVisible(布尔值)
  • saveFusedFiles(布尔值)
  • 颜色(System.Collections.Specialized.StringCollection)
  • 分隔符(System.Collections.Specialized.StringCollection)
当尝试读取“颜色”或“分隔符”时,我得到一个InvalidOperationException,但读取布尔变量是有效的

在我的中,我找不到我的System.Collections.Specialized.StringCollection变量

据我所知,设置变量的实例是自动创建的,所以这应该不是问题所在

这是我读取设置的构造函数:

Public Sub New()

    ' This call is required by the Windows Form Designer.
    InitializeComponent()

    ' Add any initialization after the InitializeComponent() call.

    My.Settings.Reload()

    'INIT Separators

    If Not ListView_Separators.Items.Count = 0 Then
        ListView_Separators.Items.Clear()
    End If

    If My.Settings.separators.Count = 0 Then
        My.Settings.separators.Add(",")
        GenerateListViewItem(",")
    Else
        For Each seperator As String In My.Settings.separators
            GenerateListViewItem(seperator)
        Next
    End If
    Button_Add.Enabled = False
    Button_Delete.Enabled = False

    'INIT Colors

    If DataGridView_Colors.Rows.Count > 0 Then
        DataGridView_Colors.Rows.Clear()    'Clear DataGridView
    End If
    For Each color As String In My.Settings.colors  'Add all Colors to DataGridView
        'Add to DataGridView
        Dim splitedColor As String() = New String(1) {1, 1}
        splitedColor = color.Split("_")
        Dim contentText As String
        Select Case splitedColor(1)
            Case 0
                contentText = "New component"
            Case 1
                contentText = "Removed component"
            Case 2
                contentText = "Changed Data"
        End Select
        Dim arrDataGridRow As String() = New String(1) {splitedColor(0), contentText}
        DataGridView_Colors.Rows.Add(arrDataGridRow)
        Dim dgwStyle As New DataGridViewCellStyle
        dgwStyle.ForeColor = Drawing.Color.FromName(splitedColor(0))
        DataGridView_Colors.Rows(DataGridView_Colors.Rows.Count - 1).Cells(0).Style = dgwStyle
    Next

    'INIT View

    If My.Settings.appVisible = True Then
        Checkbox_Visable.Checked = True
    Else
        Checkbox_Visable.Checked = False
    End If

End Sub
My.Settings.separators.Count引发异常


有人知道怎么处理吗

我认为这就是为什么您在配置文件中看不到集合的原因

但对同一个问题的回答似乎是一个更好的解决方案


你能提供一些代码吗?当然,我在问题中添加了构造函数。我在运行时读取My.Settings.separators.count时遇到了InvalidOperationException。我在配置文件中没有看到
颜色
分隔符