Удаление куска текста из переменной StringBuilder - C#
Формулировка задачи:
Нужна помощь или подсказка. Постараюсь описать максимально понятно.
Задача:
Есть GUI на WinForm на ней n-количество checkbox, и всего один Button. На checkBox'ы обработчик checkBox_CheckedChanged, который должен записывать в переменную (в моём случае StringBuilder) форматируемый текст (т.е. текст с переносами на новую строку). Когда чекаешь checkbox в переменную записался текст, а когда наживаешь на кнопку, этот текст заносится в тестовый документ. Всё это я реализовал, НО,возникла следующая проблема
: Когда чекаешь сразу несколько checkBox'сов, то все верно в переменную добавляется информация с этих checkBox'ов. При нажатии Button, в текстовый файл заносится так как надо,НО когда отжимаешь один или несколько checkBox'ов (типа пользователь передумал добавлять текст в файл), эту же информацию из переменной удалить не могу. Могу только полностью очистить переменную с помощью sb.Clear(); Если понятна суть проблемы, то подскажите, пожалуйста, как это реализовать или куда копать? Пример, часть кода:StringBuilder sb = new StringBuilder(); private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox.Checked) { sb.AppendLine("[ManageResources]"); sb.AppendLine("Connect=Srvr=" + "\"server\"" + ";" + "Ref=" + "\"base\"" + ";"); sb.AppendLine("ID=1"); sb.AppendLine("OrderInList=1"); sb.AppendLine("Folder=/"); sb.AppendLine("OrderInTree=1"); } } private void checkBox2_CheckedChanged(object sender, EventArgs e) { if (checkBox.Checked) { sb.AppendLine("[Base]"); sb.AppendLine("Connect=Srvr=" + "\"server\"" + ";" + "Ref=" + "\"base2\"" + ";"); sb.AppendLine("ID=2"); sb.AppendLine("OrderInList=2"); sb.AppendLine("Folder=/"); sb.AppendLine("OrderInTree=2"); } } private void button8_Click(object sender, EventArgs e) { MessageBox.Show(action._Bases(textBox1.Text, ListBox1IndexText, sb, checkBoxText4), "Adding to DB", MessageBoxButtons.OK, MessageBoxIcon.Information); }
Решение задачи: «Удаление куска текста из переменной StringBuilder»
textual
Листинг программы
StringBuilder sb = new StringBuilder(); private void checkBox_CheckedChanged(object sender, EventArgs e) //подключаете обработчик к CheckedChanged всех чекбоксов { sb.Clear(); if (checkBox1.Checked) { sb.AppendLine("[ManageResources]"); sb.AppendLine("Connect=Srvr=" + "\"server\"" + ";" + "Ref=" + "\"base\"" + ";"); sb.AppendLine("ID=1"); sb.AppendLine("OrderInList=1"); sb.AppendLine("Folder=/"); sb.AppendLine("OrderInTree=1"); } if (checkBox2.Checked) { sb.AppendLine("[Base]"); sb.AppendLine("Connect=Srvr=" + "\"server\"" + ";" + "Ref=" + "\"base2\"" + ";"); sb.AppendLine("ID=2"); sb.AppendLine("OrderInList=2"); sb.AppendLine("Folder=/"); sb.AppendLine("OrderInTree=2"); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д