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

How to overwrite Combobox item with textbox instead of duplicating it

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

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

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

例如,如果我将 "Test" 放入组合框字段并单击保存两次,我会得到两个 "test" 项。那么如果我使用具有以下内容的删除按钮:

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

它只删除一个条目。如果我再次删除重复项,因为文本文件不再存在,程序会崩溃。

我该如何编写才能使组合框中的内容与现有条目完全匹配时覆盖现有条目?它确实会覆盖它创建的文本文档,没有问题。

在按钮的点击事件下,在将项目添加到组合框之前,只需检查该项目是否已经存在。试试这个:

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