public static void ChangeValue(object sender, DataGridViewCellEventArgs e, object[] arguments) { if (arguments.Length < 2) { throw new ArgumentException("Arguments less 2", nameof(arguments)); } try { var view = (TView)sender; var row = view.GetRow(e.RowIndex); if (row == null) { return; } var column = (DataGridViewColumn)arguments[0]; var value = arguments[1]; row.SetValue(column, value); } catch (Exception exception) { MessageBoxUtilities.ShowException(exception); } }
public static void EditUnitsColumn(object sender, EventArgs e, params object[] arguments) { if (arguments.Length < 5) { throw new ArgumentException("Objects less than 5", nameof(arguments)); } try { var valueColumn = (DataGridViewColumn)arguments[0]; var unitsColumn = (DataGridViewColumn)arguments[1]; var rangeColumn = (DataGridViewColumn)arguments[2]; var customUnits = (CustomUnits)arguments[3]; var predicate = (Func <Unit, bool>)arguments[4]; var rangeTextColumn = arguments.Length >= 6 ? (DataGridViewColumn)arguments[5] : null; //Optional var view = (TView)sender; var row = view.CurrentRow; var value = GetVariableValue(row, valueColumn, unitsColumn, rangeColumn, customUnits); var form = new Forms.SelectUnitsForm(value.Unit, value.CustomUnits, predicate); if (form.ShowDialog() != DialogResult.OK) { return; } var newUnit = form.SelectedUnit; var newValue = value.ConvertValue(newUnit, form.CustomUnits); customUnits = form.CustomUnits; view.ChangeValidationArguments( unitsColumn, valueColumn, unitsColumn, customUnits); view.ChangeValidationArguments( unitsColumn, valueColumn, unitsColumn, customUnits); view.ChangeEditArguments( unitsColumn, valueColumn, unitsColumn, rangeColumn, customUnits, predicate, rangeTextColumn); row.SetValue(unitsColumn, newUnit, withoutValidation: true); row.SetValue(valueColumn, newValue); if (rangeTextColumn != null) { row.SetValue(rangeTextColumn, newUnit); } // If from analog to digital or from digital to analog if (value.Unit.IsDigital() != newUnit.IsDigital()) { row.SetCell(valueColumn, GetValueCellForUnit(newValue, newUnit)); } view.ValidateRow(row); } catch (Exception exception) { MessageBoxUtilities.ShowException(exception); } }
public static void EditBoolean(object sender, EventArgs e) { try { var view = (TView)sender; var cell = view.CurrentCell; cell.Value = !((bool)cell.Value); view.ValidateCell(cell); } catch (Exception exception) { MessageBoxUtilities.ShowException(exception); } }
public static void EditValue(object sender, EventArgs e, params object[] arguments) { if (arguments.Length < 3) { throw new ArgumentException("Objects less than 3", nameof(arguments)); } try { var unitsColumn = (DataGridViewColumn)arguments[0]; var rangeColumn = (DataGridViewColumn)arguments[1]; var customUnits = (CustomUnits)arguments[2]; var view = (TView)sender; var row = view.CurrentRow; var cell = view.CurrentCell; try { var value = GetVariableValue(row, cell.OwningColumn, unitsColumn, rangeColumn, customUnits); if (value.Unit.IsDigital()) { cell.Value = value.GetInverted().ToString(); } else { view.BeginEdit(false); } } catch (Exception) { view.BeginEdit(false); } view.ValidateCell(cell); } catch (Exception exception) { MessageBoxUtilities.ShowException(exception); } }
public static void EditEnum <T>(object sender, EventArgs e) where T : struct, IConvertible { try { if (!typeof(T).IsEnum) { throw new ArgumentException("T must be an enumerated type"); } var view = (TView)sender; var cell = view.CurrentCell; cell.Value = ((T)cell.Value).NextValue(); view.ValidateCell(cell); } catch (Exception exception) { MessageBoxUtilities.ShowException(exception); } }
public static void EditColor(object sender, EventArgs e) { try { var view = (TView)sender; var cell = view.CurrentCell; var dialog = new ColorDialog(); dialog.Color = (Color)cell.Value; if (dialog.ShowDialog() != DialogResult.OK) { return; } cell.Value = dialog.Color; view.ValidateCell(cell); } catch (Exception exception) { MessageBoxUtilities.ShowException(exception); } }