我有两种形式的组合框。组合框值存储在My.Settings.testDevices中。 (System.Collections.Specialized.String.Collection),范围为User。My.Settings“目标数组不够长,请检查destIndex和长度以及数组的下限。”
第二种形式添加到项目添加到的testDevices的能力,然后在退出时它更新My.Settings.testDevices。
现在,只有当我做出改变的设置(只添加项目),当我退出返回到主窗体(这仍然加载整个过程),我的应用程序崩溃,并显示以下信息:
“”附加信息:目标数组不够长,请检查destIndex和长度以及数组的下限。“
据我了解,这可能是一个的并发性问题,但我不知道。
我的代码:
在我的主要形式Load事件:(从My.Settings加载)
testDevicesComboBoxMain.Items.Clear()
My.Settings.testDevices.CopyTo(mainFormTestDevices, 0)
testDevicesComboBoxMain.Items.AddRange(mainFormTestDevices)
其中 “testDevicesComboBoxMain” 为主要形式的组合框。
在辅助形式关闭事件:(保存到My.Settings)
Dim items(testDevicesComboBox.Items.Count - 1) As String
testDevicesComboBox.Items.CopyTo(items, 0)
My.Settings.testDevices.Clear()
My.Settings.testDevices.AddRange(items)
My.Settings.Save()
我发现放在这里类似的问题,但没有用,我理解的答案:P
正如我一个初学者与vb.net,可以任何答案提供一个易于理解的形式请!
感谢。
我忘了补充:
Public items(My.Settings.testDevices.Count - 1) As String
Public mainFormTestDevices(My.Settings.testDevices.Count - 1) As String
我试着设置单独的声明,以防万一有某种冲突。这些显然是做同样的事情,只是名称不同而已。
什么是'mainFormTestDevices'?而不是跳转到临时的东西,保存更改设置,然后在“主”形式创建一个方法,告诉它从设置重新加载cbo。 – Plutonix
我刚刚意识到我忘了添加我的公共变量 - 我修改了我的问题。 – Tony
'公共项目(My.Settings.testDevices.Count - 1)作为字符串'的大小只设置一次 - 变量不会监视设置和添加项目时使自己更大。因此,当您尝试将更多设置值复制到它时,您会看到该错误 - 目标*太小 – Plutonix