/// <summary> /// Обработчик события - изменение состояния элемента 'CheckedListBox' /// </summary> /// <param name="obj">Объект, инициировавший событие</param> /// <param name="ev">Аргумент события, описывающий состояние элемента</param> protected override void panelManagement_onItemCheck(PanelManagementTaskTepValues.ItemCheckedParametersEventArgs ev) { //??? где сохраняются изменения. только на элементе управления? ; //??? Отправить сообщение главной форме об изменении/сохранении индивидуальных настроек // или в этом же плюгИне измененить/сохраннить индивидуальные настройки ; //Изменить структуру 'DataGridView' //m_dgvValues.UpdateStructure (); (m_dgvValues as DataGridViewTaskTepValues).UpdateStructure(ev); }
/// <summary> /// Обновить структуру таблицы (доступность(цвет)/видимость столбцов/строк) /// </summary> /// <param name="item">Аргумент события для обновления структуры представления</param> public /*override*/ void UpdateStructure(PanelManagementTaskTepValues.ItemCheckedParametersEventArgs item) { Color clrCell = Color.Empty; //Цвет фона для ячеек, не участвующих в расчете int indx = -1; bool bItemChecked = item.NewCheckState == CheckState.Checked ? true : item.NewCheckState == CheckState.Unchecked ? false : false; //Поиск индекса элемента отображения if (item.IsComponent == true) { // найти индекс столбца (компонента) - по идентификатору foreach (DataGridViewColumn c in Columns) { if (((TepCommon.HandlerDbTaskCalculate.TECComponent)c.Tag).m_Id == item.m_idComp) { indx = Columns.IndexOf(c); break; } else { ; } } } else if (item.IsNAlg == true) { // найти индекс строки (параметра) - по идентификатору // вариант №1 indx = Rows.Cast <DataGridViewRow>().First(r => { return((int)r.Tag == item.m_idAlg); }).Index; //// // вариант №2 //indx = ( // from r in Rows.Cast<DataGridViewRow>() // where (int)r.Tag == item.m_idAlg // select new { r.Index } // ).Cast<int>().ElementAt<int>(0); //// // вариант №3 //foreach (DataGridViewRow r in Rows) // if ((int)r.Tag == item.m_idAlg) { // indx = Rows.IndexOf(r); // break; // } else // ; } else { ; } if (!(indx < 0)) { if (item.m_type == PanelManagementTaskTepValues.ItemCheckedParametersEventArgs.TYPE.ENABLE) { if (item.IsComponent == true) // COMPONENT ENABLE // для всех ячеек в столбце { foreach (DataGridViewRow r in Rows) { if (getColorCellToColumn(indx, r.Index, bItemChecked, out clrCell) == true) { r.Cells[indx].Style.BackColor = clrCell; } else { ; } } ((TepCommon.HandlerDbTaskCalculate.TECComponent)Columns[indx].Tag).SetEnabled(bItemChecked); } else if (item.IsNAlg == true) // NALG ENABLE // для всех ячеек в строке { foreach (DataGridViewCell c in Rows[indx].Cells) { if (getColorCellToRow(c.ColumnIndex, indx, bItemChecked, out clrCell) == true) { c.Style.BackColor = clrCell; } else { ; } m_dictNAlgProperties.SetEnabled((int)Rows[indx].Tag, ((TepCommon.HandlerDbTaskCalculate.TECComponent)Columns[c.ColumnIndex].Tag).m_Id, bItemChecked); } } else { ; } } else if (item.m_type == PanelManagementTaskTepValues.ItemCheckedParametersEventArgs.TYPE.VISIBLE) { if (item.IsComponent == true) // COMPONENT VISIBLE // для всех ячеек в столбце { Columns[indx].Visible = bItemChecked; } else if (item.IsNAlg == true) // NALG VISIBLE // для всех ячеек в строке { Rows[indx].Visible = bItemChecked; } else { ; } } else { ; } } else { // нет элемента для изменения стиля ; } }