private void DataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) { if (e.FormattedValue.ToString() == "") { DataGridViewTextBoxColumn[] aCol = new DataGridViewTextBoxColumn[3] { секColumn, минColumn, штрафColumn }; if (aCol.Contains(dataGridView1.Columns[e.ColumnIndex])) { dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = 0; } } if (dataGridView1.Columns[e.ColumnIndex] == секColumn) { int секунд = 0; if (int.TryParse(e.FormattedValue.ToString(), out секунд)) { if (секунд > 59) { e.Cancel = true; MessageBox.Show("Введите секунды от 0 до 59"); } } } }
void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { e.Control.KeyPress -= new KeyPressEventHandler(Control_KeyPress); DataGridViewTextBoxColumn[] aCol = new DataGridViewTextBoxColumn[3] { секColumn, минColumn, штрафColumn }; if (aCol.Contains(dataGridView1.Columns[dataGridView1.CurrentCell.ColumnIndex])) { e.Control.KeyPress += new KeyPressEventHandler(Control_KeyPress); } // string CellName = dataGridView1.Columns[dataGridView1.CurrentCell.ColumnIndex].Name; //if (CellName == "минColumn" || CellName == "секColumn" || CellName == "штрафColumn") }
private void DataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e) { DataGridViewTextBoxColumn[] aCol = new DataGridViewTextBoxColumn[1] { секColumn }; результаты tRow = bindingSource1.Current as результаты; if (aCol.Contains(dataGridView1.Columns[e.ColumnIndex])) { var results = new List <ValidationResult>(); var context = new ValidationContext(tRow); if (!Validator.TryValidateObject(tRow, context, results, true)) { foreach (var error in results) { // Console.WriteLine(error.ErrorMessage); MessageBox.Show(error.ErrorMessage); tRow.время_сек = 0; } } // Куда это запихать? } }