Написание текстовое поле, поле со списком, значения numericupdown как в xml в winform
Привет,
В данный момент я записываю значения textboxs, comboboxs и numericupdowns в xml-файл, подобный этому;
XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.IndentChars = "\t"; XmlWriter xmlWriter = XmlWriter.Create(PATH, settings); //Write to XML File XmlWriter xmlWriter = XmlWriter.Create(PATH); xmlWriter.WriteStartElement("NumberOfPeople"); xmlWriter.WriteString(numericUpDown7.Text); xmlWriter.WriteEndElement(); ...
Я думаю, что это не очень хороший способ сделать это, так как код может быстро стать трудным для поддержания. Можно ли использовать foreach, чтобы пройти через все элементы управления в форме, получить метки и значения элементов управления и записать их в xml-файл?Что-то вроде этого.
Что я уже пробовал:
foreach(Control c in this.Controls) { xmlWriter.WriteStartElement(Control.Label); xmlWriter.WriteString(Control.Text); xmlWriter.WriteEndElement(); }
Правка 1: (из решения 2)
Добавление правок, потому что я не могу добавить кодовые снипеты в комментариях ниже.
Он не улавливает никаких элементов управления? Все, что есть в XML-файле, это;
<?xml version="1.0"?> <ArrayOfLabelValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
Правка 2: (из решений 1 и 2)
мне удалось получить текстовые блоки vlaues, numericUpdowns,comboboxs, обратившись к панели tableLayoutPanel, в которой они отображаются . Добавив его в Foreach()
foreach (Control c in this.mytlp.Controls)
Karthik_Mahalingam
приложение для windows ?
BEBE2011
Да, Форма Windows.
Karthik_Mahalingam
сколько здесь элементов управления ?
есть ли у каждого элемента управления метка ?
каковы все уникальные элементы управления, скажем textbox, datepicker, combo и т. д.
BEBE2011
Там может быть до 50 элементов управления, которые могут быть текстовым полем, combobox или numericUpDown каждый со своей собственной меткой.
Karthik_Mahalingam
какое соглашение об именовании используется для элементов управления?
BEBE2011
txtNameofControl,lblNameOfControl,numNameofControl, cmbNameOfControl. Таким образом, NumberOfPeople будет Label = lblNumberOfPeople, а NumericUpDown будет numNumberOfPeople и так далее.
Karthik_Mahalingam
ладно, круто.
Всегда использовать Ответить кнопка для отправки комментариев / запросов заинтересованному пользователю, иначе пользователь не получит уведомления.
BEBE2011
Ах, моя беда! - Извините :)
Karthik_Mahalingam
проверьте мое решение.