void GridViewConstraintComboCell_SelectedIndexChanged(object sender, EventArgs e) { string val = ((Control)sender).Text; Console.Write(". "); if (ConstraintList.NewConstraint.Equals(val) && DataGridView != null && this.IsInEditMode) { NewConstraintDialog dlg = new NewConstraintDialog(); if (dlg.ShowDialog(this.DataGridView) == DialogResult.OK) { Constraint cons = dlg.Constraint; base.SetValue(RowIndex, cons); DataGridView.NotifyCurrentCellDirty(false); //base.Selected = false; this.DataGridView.EndEdit(); if (sender is ComboBox) { ((ComboBox)sender).SelectedIndexChanged -= indexChangedEventHandler; } } } }