Как переписать элемент Combobox с помощью текстового поля вместо его дублирования - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь заставить кнопку сгенерировать текстовый файл и сохранить новый элемент списка со списком, основанный на том, что введено в поле списка, или заменить существующий, но, похоже, каждый раз добавляется новая запись. Он перезаписывает текстовый файл, который генерирует просто отлично.

Я попытался с помощью кнопки удалить запись в поле со списком, которая соответствует введенному имени, а затем добавить новую с тем же именем, но когда я это сделаю, она очищает поле со списком и вводит пустой элемент. Это оригинальный код без удаляемой части.

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 голосов
/ 08 мая 2019

Под событием нажатия кнопки просто проверьте, существует ли элемент, прежде чем добавить его в поле со списком. Попробуйте это:

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
...