/// <summary> /// Установить значения в столбцы для отображения /// </summary> /// <param name="values">Значения для отображения</param> public void SetValueCells(object [] values) { object value; Color clrCell = Color.Empty; bool enableValuePrevious = Enabled; float fValue = -1F , mm = -1 // минуты , ss = -1; // секунды - среднее время выполнения задачи foreach (INDEX_CELL i in Enum.GetValues(typeof(INDEX_CELL))) { try { if (((int)i < values.Length) && (!(values[(int)i] == null)) //&& (string.IsNullOrEmpty((string)values[(int)i]) == false) ) { m_cell_states[(int)i] = INDEX_CELL_STATE.ERROR; clrCell = s_CellState[(int)INDEX_CELL_STATE.OK].m_Color; switch (i) { case INDEX_CELL.COUNT: // пропустить индекс continue; case INDEX_CELL.NAME: // пропустить применение значения к ячейке, т.к. значение(наименование источника данных) постоянное m_cell_states [(int)i] = INDEX_CELL_STATE.OK; value = null; break; case INDEX_CELL.STATE: m_cell_states[(int)i] = ((string)values[(int)i])?.Equals(1.ToString()) == true ? INDEX_CELL_STATE.OK : INDEX_CELL_STATE.DISABLED; value = s_CellState[(int)m_cell_states[(int)i]].m_Text; break; case INDEX_CELL.DATETIME_VALUE: case INDEX_CELL.DATETIME_VERIFICATION: m_cell_states[(int)i] = ((string)values [(int)INDEX_CELL.STATE])?.Equals(1.ToString ()) == true ? isRelevanceDateTime((int)i, (DateTime)values[(int)i]) : INDEX_CELL_STATE.DISABLED; value = values[(int)i] is DateTime? formatDateTime((DateTime)values[(int)i]) : values[(int)i]; break; case INDEX_CELL.VALUE: if (float.TryParse(values [(int)i].ToString(), out fValue) == true) { m_cell_states [(int)i] = isRelevanceValue(fValue); if (!(m_cell_states [(int)i] == INDEX_CELL_STATE.DISABLED)) { ss = fValue; mm = ss / 60; value = string.Format(@"{0:00}:{1:00}", mm, ss % 60); } else { value = string.Format(@"--:--"); } } else { value = string.Format(@"--:--"); } break; default: m_cell_states[(int)i] = /*((string)values[(int)i])?.Equals(EtalonPBR) ==*/ true ? INDEX_CELL_STATE.OK : INDEX_CELL_STATE.ERROR; value = values[(int)i]; break; } if (!(value == null)) { Cells [(int)i].Value = value; } else { ; } // изменить цвет ячейки ~ от состояния //Cells[(int)i].Style.BackColor = s_CellState[(int)m_cell_states[(int)i]].m_Color; SetStyleCell((int)i, s_CellState [(int)m_cell_states [(int)i]].m_Color); //if (!(m_cell_states[(int)i] == INDEX_CELL_STATE.OK)) // EventUp?.Invoke((int)Tag); //else // ; } else { ; // значение == null } } catch (Exception e) { Logging.Logg().Exception(e, @"PanelTask.DataGridViewTaskRow::SetValueCells () - ...", Logging.INDEX_MESSAGE.NOT_SET); } } // INDEX_CELL i in Enum.GetValues(typeof(INDEX_CELL)) // проверить состояние ячеек, при необходимости "поднять вверх" if ((Index > 0) && ((!(m_cell_states[(int)INDEX_CELL.VALUE] == INDEX_CELL_STATE.OK)) || (!(m_cell_states[(int)INDEX_CELL.DATETIME_VALUE] == INDEX_CELL_STATE.OK)) || (!(m_cell_states[(int)INDEX_CELL.STATE] == INDEX_CELL_STATE.OK))) ) { EventUp?.Invoke(Index); } else { ; } }
/// <summary> /// Установить значения в столбцы для отображения /// </summary> /// <param name="values">Значения для отображения</param> public void SetValueCells(object [] values) { object value; Color clrCell = Color.Empty; bool enableValuePrevious = Enabled , enableValueCurrrent = false; float mm = -1 // минуты , ss = -1; // секунды - среднее время выполнения задачи foreach (INDEX_CELL i in Enum.GetValues(typeof(INDEX_CELL))) { try { if (((int)i < values.Length) && (!(values[(int)i] == null)) //&& (string.IsNullOrEmpty((string)values[(int)i]) == false) ) { m_cell_states[(int)i] = INDEX_CELL_STATE.ERROR; clrCell = Color.Empty; switch (i) { case INDEX_CELL.NAME: case INDEX_CELL.COUNT: continue; break; case INDEX_CELL.STATE: m_cell_states[(int)i] = ((string)values[(int)i])?.Equals(1.ToString()) == true ? INDEX_CELL_STATE.OK : INDEX_CELL_STATE.ERROR; value = s_CellState[(int)m_cell_states[(int)i]].m_Text; break; case INDEX_CELL.DATETIME_VALUE: case INDEX_CELL.DATETIME_VERIFICATION: m_cell_states[(int)i] = isRelevanceDateTime((int)i, (DateTime)values[(int)i]); value = values[(int)i] is DateTime? formatDateTime((DateTime)values[(int)i]) : values[(int)i]; break; case INDEX_CELL.VALUE: m_cell_states[(int)i] = isRelevanceValue((float)values[(int)i]); ss = (float)values[(int)i]; mm = ss / 60; value = string.Format(@"{0:00}:{1:00}", mm, ss % 60); break; default: m_cell_states[(int)i] = /*((string)values[(int)i])?.Equals(EtalonPBR) ==*/ true ? INDEX_CELL_STATE.OK : INDEX_CELL_STATE.ERROR; value = values[(int)i]; break; } Cells[(int)i].Value = value; // изменить цвет ячейки ~ от состояния Cells[(int)i].Style.BackColor = s_CellState[(int)m_cell_states[(int)i]].m_Color; //if (!(m_cell_states[(int)i] == INDEX_CELL_STATE.OK)) // EventUp?.Invoke((int)Tag); //else // ; } else { ; // значение == null } } catch (Exception e) { Logging.Logg().Exception(e, @"PanelTask.DataGridViewTaskRow::SetValueCells () - ...", Logging.INDEX_MESSAGE.NOT_SET); } } // INDEX_CELL i in Enum.GetValues(typeof(INDEX_CELL)) // проверить состояние ячеек, при необходимости "поднять вверх" if ((Index > 0) && ((!(m_cell_states[(int)INDEX_CELL.VALUE] == INDEX_CELL_STATE.OK)) || (!(m_cell_states[(int)INDEX_CELL.DATETIME_VALUE] == INDEX_CELL_STATE.OK)) || (!(m_cell_states[(int)INDEX_CELL.STATE] == INDEX_CELL_STATE.OK))) ) { EventUp?.Invoke(Index); } else { ; } }
public void OnPointerUp(PointerEventData eventData) { EventUp?.Invoke(); m_isDown = false; }