Предполагая, что этот метод является единственным способом, которым строки могут быть добавлены в текстовое поле, возможно, вам следует проверить, содержит ли текстовое поле acc
, прежде чем добавить его ...
if(!metroTextBox.Text.Contains(acc))
metroTextBox.Text = metroTextBox.Text + acc + Environment.NewLine;
Примечание. если вы переименуете текстовое поле в форме, вам не нужно будет устанавливать sh переменные с другими именами. Щелкните по текстовому полю в форме, и в сетке свойств, где написано (Имя) textbox1, измените его на metroTextBox
Примечание 2; этот код добавляет содержимое текстового поля в файл каждый раз, когда добавляет строку в текстовое поле. Это также может быть источником дублирования, если имя файла не меняется, потому что после добавления 3 строк ваш файл будет выглядеть так:
line1
line1
line2
line1
line2
line3
Я не рекомендую вам писать файл так часто, как вы добавляете строка в текстовое поле; одна операция тривиальна, другая действительно медленная и сложная. Разделите эти вещи на разные методы и реже вызывайте файл записи