Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs =================================================================== diff -u -rcda9bb0707f49cfb8e685d3ec04da01240c73f26 -r65fbb105db0ceec852fbf97a568cec6f8c634809 --- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision cda9bb0707f49cfb8e685d3ec04da01240c73f26) +++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 65fbb105db0ceec852fbf97a568cec6f8c634809) @@ -165,6 +165,8 @@ { dataGridView.CurrentCellDirtyStateChanged += DataGridViewCurrentCellDirtyStateChanged; dataGridView.CellClick += DataGridViewOnCellClick; + dataGridView.CellValidating += DataGridViewCellValidating; + dataGridView.DataError += DataGridViewDataError; var nameColumn = new DataGridViewTextBoxColumn { @@ -693,6 +695,28 @@ UpdateApplicationSelection(); } + private void DataGridViewCellValidating(object sender, DataGridViewCellValidatingEventArgs e) + { + dataGridView.Rows[e.RowIndex].ErrorText = String.Empty; + + var cellEditValue = e.FormattedValue.ToString(); + if (string.IsNullOrWhiteSpace(cellEditValue)) + { + dataGridView.Rows[e.RowIndex].ErrorText = Resources.DataGridViewCellValidating_Text_may_not_be_empty; + } + } + + private void DataGridViewDataError(object sender, DataGridViewDataErrorEventArgs e) + { + e.ThrowException = false; + e.Cancel = true; + + if (string.IsNullOrWhiteSpace(dataGridView.Rows[e.RowIndex].ErrorText) && e.Exception != null) + { + dataGridView.Rows[e.RowIndex].ErrorText = e.Exception.Message; + } + } + private void ListBoxOnSelectedValueChanged(object sender, EventArgs e) { UpdateDataGridViewDataSource();