/// <summary> /// Сгенерировать ключ для контрола /// </summary> /// <param name="valueControl">собственно сам контрол</param> /// <returns>Ключ для word файла или null в случае не успеха</returns> private static string GenerateKey(ValueControl valueControl) { if (valueControl == null) { return(null); } string returnResult = "#00"; string numString = ""; object tag = valueControl.Control.Tag; if (tag == null) { return(null); } numString = valueControl.Control.Tag.ToString(); // Номер ключа зависит от тега if (numString.Length == 1) { numString = "0" + numString; // добавляет 0 перед числом если оно меньше 10, чтобы число всегда было из 2х цифр } returnResult = "#" + numString; // Пример результата: #05 return(returnResult); }
/// <summary> /// В ручную добавить ключ-значение в выгружаемый массив. Ключ будет значение TaglIndex элемента /// </summary> /// <param name="ValueControlArray">Массив, в который добавляется значение</param> /// <param name="control">Контрол которыйд добавляется</param> public static void AddValueControl(ref List <ValueControl> ValueControlArray, Control control) { ValueControl newValueControl = new ValueControl(control); newValueControl.Key = GenerateKey(newValueControl); ValueControlArray.Add(newValueControl); // Записать в лист }
/// <summary> /// В ручную добавить ключ-значение в выгружаемый массив /// </summary> /// <param name="ValueControlArray">Массив, в который добавляется значение</param> /// <param name="control">Контрол которыйд добавляется</param> /// <param name="Key">Ключ контрола, желательно в формате #-01</param> public static void AddValueControl(ref List <ValueControl> ValueControlArray, Control control, string Key) { ValueControl newValueControl = new ValueControl(control) { Key = Key // Добавляение ключа }; ValueControlArray.Add(newValueControl); // Записать в лист }
/// <summary> /// Берет текст из всех форм заполнения пользователем и превращает в массив /// </summary> /// <param name="controls"> коллекция элементов(контролов) с формы</param> /// <returns>Возвращает лист значений контролов</returns> private static List <ValueControl> ControlArrayToString(Control.ControlCollection controls) { List <ValueControl> valueControlsReturn = new List <ValueControl>(); // Возвращаемый лист значений контролов foreach (Control control in controls) // Перебор коллекци контролов на вычленение из него тех, что имеют поля для ввода { //Пример обхода всех TextBox-ов http://www.cyberforum.ru/windows-forms/thread110436.html#a_Q7 if (control is TextBox || control is ComboBox) // Если содержит поле для ввода { ValueControl newValueControl = new ValueControl(control); valueControlsReturn.Add(newValueControl); // Записать в лист } } return(valueControlsReturn); }