如何扩展现有的my.settings StringCollection数组



我有点生锈,正在使用VS2017在2013年更新我编写的VB.NET程序。我需要通过一个条目扩展一个我的stringcollection数组。这是用户范围,尽管在线研究和测试数小时,我还是不知道如何扩大现有数组。

我尝试使用.ADD方法,但被告知"不是字符串的成员"。我尝试删除" user.config"。

最后,我尝试了这一点,它起作用了:1(在设计时,在设置中,我在StringCollection变量中添加了额外的占位符值。2(将范围从用户更改为应用程序。3(运行程序。4(将范围更改回用户。我通过在运行时检查我的设置来确认这是有效的。我想知道的是:为什么这项工作是这样做的?

    For index = 0 To 5 'Motor numbers
        'Changing upper index limit from 4 to 5 throws an Exception 
        strCommand = "(0," & index.ToString & ")"
        My.Settings.strMotor_Kp(index) = (Kpid(0, index))
        strCommand = "(1," & index.ToString & ")"
        My.Settings.strMotor_Ki(index) = (Kpid(1, index))
        strCommand = "(2," & index.ToString & ")"
        My.Settings.strMotor_Kd(index) = (Kpid(2, index))
    Next

StringCollection编辑器非常有限,您可以轻松地附加行,但据我所知,在中间插入一个。

但是您还可以更改app.config中的值,重新编译项目然后打开设置,然后VS询问您

在app.config文件中更改了设置" foo"的值。... 你 想要更新.settings文件中的值?

整个过程不必将设置切换到应用程序和返回用户模式。只需对其进行编译,然后将更改反映在app.config中(在调用方法save((时,在运行时生成user.config(。

仅在项目名称空间已更改时,必须在重新编译项目之前从app.config删除旧条目,否则必须在<[...].Properties.Settings>标签中调整名称空间(。

最新更新