void dgvCurrent_SelectionChanged(object sender, EventArgs e) { if (dontRunHandler) { return; } if (dgvCurrent.SelectedCells.Count == 0) { return; } var selectedInsurer = dgvCurrent.Rows[dgvCurrent.SelectedCells[0].RowIndex].Cells[0].Value.ToString(); var insurerCategory = dgvCurrent.Rows[dgvCurrent.SelectedCells[0].RowIndex].Cells[2].Value.ToString(); if (String.Equals(insurerCategory, "Third Party Broker", StringComparison.InvariantCultureIgnoreCase) || String.Equals(insurerCategory, "Underwriting Agency", StringComparison.InvariantCultureIgnoreCase) || String.Equals(insurerCategory, "Wholesale Broker", StringComparison.InvariantCultureIgnoreCase)) { var enterInsurer = new EnterInsurer(); enterInsurer.ShowDialog(); var enteredInsurer = enterInsurer.EnteredInsurer; if (!String.IsNullOrEmpty(enteredInsurer)) { selectedInsurer = selectedInsurer + " / " + enteredInsurer; } } CurrentInsurer = selectedInsurer; CurrentInsurerId = dgvCurrent.Rows[dgvCurrent.SelectedCells[0].RowIndex].Cells[1].Value.ToString(); }
private void PromptForInsurer(object sender, DataGridViewCellMouseEventArgs e) { var dgv = (DataGridView)sender; dgv.BeginEdit(false); bool formattedValue = false; string category = string.Empty; bool value = false; int percentIndex = -1; if (e.RowIndex < 0) { return; } foreach (DataGridViewCell cell in dgv.Rows[e.RowIndex].Cells) { switch (cell.OwningColumn.HeaderText) { case "R": formattedValue = cell.FormattedValue != null && (bool)cell.EditedFormattedValue; if (cell.Value != null) { bool.TryParse(cell.Value.ToString(), out value); } break; case "C": formattedValue = cell.FormattedValue != null && (bool)cell.EditedFormattedValue; if (cell.Value != null) { bool.TryParse(cell.Value.ToString(), out value); } break; case "Category": if (cell.Value != null) { category = cell.Value.ToString(); } break; case "%": percentIndex = cell.ColumnIndex; break; } } if (!formattedValue) { //clear out the %. dgv.Rows[e.RowIndex].Cells[percentIndex].Value = ""; return; } //formatted value is the becomming value of the checkbox (either getting unticked or getting ticked) // ReSharper disable ConditionIsAlwaysTrueOrFalse if (value == formattedValue) { return; } // ReSharper restore ConditionIsAlwaysTrueOrFalse if (String.Equals(category, "Third Party Broker", StringComparison.InvariantCultureIgnoreCase) || String.Equals(category, "Underwriting Agency", StringComparison.InvariantCultureIgnoreCase) || String.Equals(category, "Wholesale Broker", StringComparison.InvariantCultureIgnoreCase)) { var enterInsurer = new EnterInsurer(); enterInsurer.ShowDialog(); string enteredInsurer = enterInsurer.EnteredInsurer; if (!String.IsNullOrEmpty(enteredInsurer)) { foreach (DataGridViewCell cell in dgv.Rows[e.RowIndex].Cells) { switch (cell.OwningColumn.HeaderText) { case "Insurer": cell.Value += " / " + enteredInsurer; break; } } } } dgv.Rows[e.RowIndex].Cells[percentIndex].Value = "100"; dgv.EndEdit(); }