如何用文本框覆盖组合框项目而不是复制它

时间:2019-05-08 00:27:46

标签: vb.net combobox my.settings

我试图让一个按钮生成一个文本文件,并根据在combobox字段中输入的内容保存一个新的combobox项,或者替换一个现有的combobox项,但是每次似乎都在添加一个新项。它会覆盖生成的文本文件。

我尝试让按钮删除与输入名称匹配的组合框条目,然后添加一个具有相同名称的新组合框,但是当我这样做时,它将清除组合框字段并输入一个空白项。这是没有删除部分的原始代码。

Sub Button9Click(sender As Object, e As EventArgs)
        My.Computer.FileSystem.WriteAllText("C:\Users\" & Environment.UserName & "\desktop\Templates\" & comboBox2.text & ".txt",TextBox4.Text, False)
        ComboBox2.Items.Add(comboBox2.Text)
End Sub

例如,如果我在组合框字段中输入“测试”,然后单击“保存”两次,我将获得两个“测试”项。那么如果我使用具有以下内容的删除按钮:

Sub Button10Click(sender As Object, e As EventArgs)
        My.Computer.FileSystem.DeleteFile ("C:\Users\" & Environment.UserName & "\desktop\templates\" & comboBox2.text & ".txt")
        comboBox2.Items.remove(comboBox2.Text)
End Sub

它仅删除一个条目。如果我再次执行此操作以删除重复项,则由于文本文件不再存在,程序将崩溃。

我怎么写这个,如果组合框中写的内容与现有条目完全匹配,它将覆盖现有项目?它确实会覆盖它创建的文本文档,没有问题。

1 个答案:

答案 0 :(得分:0)

在按钮的单击事件下,只需简单地检查该项目是否已存在,然后再将其添加到组合框。试试这个:

Sub Button9Click(sender As Object, e As EventArgs)
    My.Computer.FileSystem.WriteAllText("C:\Users\" & Environment.UserName & "\desktop\Templates\" & comboBox2.text & ".txt",TextBox4.Text, False)
    If (Not ComboBox2.Items.Contains(comboBox2.Text)) Then
        ComboBox2.Items.Add(comboBox2.Text)
    End If
End Sub