/// <summary> /// Инициализировать (создать, разместить) подчиненные(дочерние) элементы управления /// </summary> private void InitializeComponents() { Control ctrl = null; int posRow = -1; posRow = _panelParent.IndexLastRowControl; // //Признаки включения/исключения для отображения блока(ТГ) ctrl = new Label(); ctrl.Dock = DockStyle.Bottom; (ctrl as Label).Text = @"Выбрать блок для отображения:"; _panelParent.Controls.Add(ctrl, 0, posRow); _panelParent.SetColumnSpan(ctrl, _panelParent.ColumnCount); // -------------------------------------------------------- // // -------------------------------------------------------- posRow = _panelParent.IndexLastRowControl; //Подпись + CheckListBox для вызова/снятия с отображения групп столбцов в представлении // эти 2 элемента требуют перемещения при добавлении RadioButton-блоков // //Подпись для списка признаков включения/исключения для отображения столбца(ов) ctrl = new Label(); ctrl.Dock = DockStyle.Bottom; (ctrl as Label).Text = @"Включить/исключить столбцы для отображения:"; _panelParent.Controls.Add(ctrl, 0, posRow); _panelParent.SetColumnSpan(ctrl, _panelParent.ColumnCount); // //Список признаков включения/исключения для отображения столбца(ов) ctrl = m_clbGroupHeaderCheckStates = new CheckedListBoxGroupHeaders(); //ctrl = Activator.CreateInstance <CheckedListBoxGroupHeaders>(); ctrl.Name = INDEX_CONTROL.CLBX_GROUPHEADER_VISIBLED.ToString(); _panelParent.Controls.Add(ctrl, 0, posRow = posRow + 1); _panelParent.SetColumnSpan(ctrl, _panelParent.ColumnCount); _panelParent.SetRowSpan(ctrl, 4); // //Признак Корректировка_включена/корректировка_отключена ctrl = new CheckBox(); ctrl.Name = INDEX_CONTROL.CHKBX_MODE_ENABLE.ToString(); ctrl.Text = @"Корректировка значений разрешена"; ctrl.Dock = DockStyle.Top; ctrl.Enabled = false; (ctrl as CheckBox).Checked = true; _panelParent.Controls.Add(ctrl, 0, posRow = _panelParent.RowCount - 1); _panelParent.SetColumnSpan(ctrl, _panelParent.ColumnCount / 2); _panelParent.SetRowSpan(ctrl, 1); }
/// <summary> /// Установка состояния элемента /// </summary> /// <param name="listCheckState">лист с чекедами для групп</param> private void setCheckStateValues(List <CheckState> listCheckState) { CheckedListBoxGroupHeaders ctrl = //findControl(INDEX_CONTROL.CLBX_GROUPHEADER_VISIBLED) as CheckedListBoxTaskVedomostBl m_clbGroupHeaderCheckStates ; if (listCheckState.Count() > 0) { try { if (ctrl.Items.Count > 0) { if (ctrl.Items.Count == listCheckState.Count()) { for (int i = 0, indxState = 0; i < ctrl.Items.Count; i++, indxState++) { ctrl.SetItemCheckState(indxState, listCheckState[indxState]); } } else { // кол-во элементов для установки значений не соответствует кол-ву значений ; } } else { // кол-во элементов для установки значений == 0 ; } } catch (Exception e) { Logging.Logg().Exception(e, string.Format(@"ManagementVisible::setCheckStateValues () - кол-во значений для установки = {0}..." , listCheckState.Count()) , Logging.INDEX_MESSAGE.NOT_SET); } } else { // кол-во состояний для установки == 0 ; } }