Vb.net 是否覆盖复选框中保存的设置?

Vb.net 是否覆盖复选框中保存的设置?,vb.net,checkbox,combobox,io,tuples,Vb.net,Checkbox,Combobox,Io,Tuples,我有一个小应用程序,允许用户选中自定义数量的复选框,然后将其保存到一个组合框中供以后选择。现在,组合框接受重复项,我正在尝试删除它,并允许用户覆盖他们自己保存的特定选择。每个用户选择的数据首先存储在一个列表中(元组列表,字符串列表,字符串列表)调用columnList,其中项目1(以名为的字符串访问)是列表的名称,项目2是列表。对于关闭程序后的访问,它还存储在文本文件中。我有一个粗略的方法,该方法允许用户覆盖自己保存的选择,在其中删除用户的name是,然后将其与更新的选择一起插入到同一位置。我还

我有一个小应用程序,允许用户选中自定义数量的复选框,然后将其保存到一个组合框中供以后选择。现在,组合框接受重复项,我正在尝试删除它,并允许用户覆盖他们自己保存的特定选择。每个用户选择的数据首先存储在一个列表中(元组列表,字符串列表,字符串列表)调用columnList,其中项目1(以名为的字符串访问)是列表的名称,项目2是列表。对于关闭程序后的访问,它还存储在文本文件中。我有一个粗略的方法,该方法允许用户覆盖自己保存的选择,在其中删除用户的name是,然后将其与更新的选择一起插入到同一位置。我还有一个int标志,告诉程序用户是否正在覆盖而不是创建新列表

For i = 0 To columnList.Count - 1
            If columnList(i).Item1 = name Then
                columnList.RemoveAt(i)
                columnList.Insert(i, Tuple.Create(name, customList))
                flag = 1
                Exit For
            End If
        Next
        If flag = 0 Then
            columnList.Add(Tuple.Create(name, customList))
        End If

问题是,这并不是删除文本文件中的数据,而是向文件中添加另一个具有重复名称的选择列表。因此,在关闭应用程序之前,它一直有效,然后当它重新打开时,原始列表仍会与底部重复名称下的新列表一起显示在组合框中。我想编辑st直接从应用程序中获取orage文本文件。

问题有点不清楚,如果我理解正确,请告诉我

  • 程序打开(工作)
  • 从文本文件(works)加载用户数据/首选项
  • 用户更改首选项(工作)
  • 用户退出程序
  • 当用户重新加载程序时,旧数据和新数据都会加载(这是您想要更改的)
  • 如果是上述情况,那么您需要做的是覆盖文件,而不是追加文件

    Dim sw As Streamwriter = New Streamwriter("C:\myFile.txt", False)
    
    结尾处的true指示文件覆盖,而不仅仅是写入底部


    如果这不是您正在谈论的问题,请您以上述格式编辑您的问题,以便我们可以看到您的问题具体在哪里?

    由于该问题显然对您有效,您可以通过单击复选标记(以及您得到的其他一些答案)来接受该答案。这有助于其他人找到好答案,正如15 rep.ColumnList(I)中的upvoting一样.Item1->>>这不是名称,这是一个整数。我相信您所写的不会编译-因此我不确定您是如何运行它的。使用Nefariis解决方案-简单解决方案。完成!抱歉,我是新手StackOverflow@MaertinColumnList是一个元组列表,所以它确实可以编译但我想知道是否有更简单的方法。如果Sally在组合框中选择6个值中的第4个,更改她所选复选框列表中的两个值,然后单击“保存”,我将不得不覆盖文本文件中每个人的列表,而不仅仅是她的列表。如果你开始使用文本文件,我将让每个用户创建自己的文件。然后让他们都保存在一个单独的文件夹中,使用for循环加载扩展名为“.txt”的所有文件……如果有超过几个用户,我实际上会为信息创建一个SQL DB(在VS中不难)。在单个文本中执行此操作的唯一方法是读入整个文件,创建一个stringbuilder,然后在SB中逐行添加,直到您到达要插入或删除的位置,读入文件的其余部分,然后将stringbuilder保存到原始文件上……这将大大降低效率。您可能具有“true”StreamWriter声明中的Boolean属性称为Append,我相信如果希望将其追加到文件中,您会将其设置为true,否则设置为false。