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

Я пытаюсь реализовать простую функцию сохранения-загрузки в своем приложении, которая сохранит состояния различных элементов графического интерфейса в моем приложении (текстовые поля, флажки, раскрывающиеся меню и т. д.) в файл .txt с пользовательским именем, а затем загрузить их обратно в следующий раз, когда пользователь запустит мое приложение. Я не хочу использовать My.Settings, потому что это портативное приложение, и поэтому файл настроек должен быть рядом с исполняемым файлом. Также потому, что мое приложение является редактором, и настройки должны быть привязаны по имени к текущему файлу, с которым работает пользователь. Разрешения на запись не проблема. Я хочу закодировать это таким образом, чтобы мне нужно было только записать имена элементов графического интерфейса, которые будут упомянуты в моем коде один раз, предпочтительно в списке. Вот так (псевдокод):

    'list
    Dim ElementsToSave() as Object = {
    Textbox1.text,
    Checkbox1.Checked,
    DropDownMenu1.SelectedItem,
    .....
    }

    'save-load sub
    Sub SaveLoad(Elements as Object, mode as string)
       If mode = "save" then
          For each Element in Elements
             ??? 'save each element state to .txt file
          Next
       If mode = "load" then
          For each Element in Elements
             ??? 'load each element state from .txt file
          Next
       End if
   End sub

   'call
   SaveLoad(ElementsToSave, "save")
   'or
   SaveLoad(ElementsToSave, "load")

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

РЕДАКТИРОВАТЬ: я забыл упомянуть. Было бы очень хорошо, если бы каждое значение в файле .txt сохранялось с ключом, который относится к определенному элементу, так что, если я добавлю в свое приложение больше элементов GUI в будущем или переделаю их, это сохранение load sub всегда будет выбирать правильное значение из файла .txt для определенного элемента.


person Justinas Rubinovas    schedule 29.12.2018    source источник


Ответы (1)


person    schedule
comment
Спасибо, это довольно автоматизировано, но я хотел бы иметь все элементы управления, которые я хочу сохранить, в списке, как в примере, который я написал, потому что я не хочу сохранять ВСЕ элементы - только большинство из них. - person Justinas Rubinovas; 29.12.2018
comment
Вы предпочитаете жестко запрограммировать элементы управления, например, object[] myControls = new object[]{this.Testbox1, this.Checkbox1}; и повторить это? - person toni; 29.12.2018
comment
Почти, с небольшой поправкой: не сами объекты, а конкретное свойство этих объектов, вроде TestBox1.Text, Checkbox1.Checked и т.д. В вашем примере функция сохранения-загрузки заботится о выборе нужного свойства (.text , .checked и т. д.), но я хочу сам указать это в массиве Controls. - person Justinas Rubinovas; 29.12.2018
comment
Я пересмотрел свой ответ. Я надеюсь, что это помогает! - person toni; 30.12.2018