聚会有点晚了,但我认为这对其他人仍然有用。就我而言,我收到了这个错误,因为我添加了一个基于这样的枚举的组合框:
// Combo
DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
combo.DataSource = Enum.GetValues(typeof(PhoneNumberType));
combo.DataPropertyName = "PhoneNumberType";
combo.Name = "PhoneNumberType";
phoneNumberGrid.Columns.Add(combo);
现在,当 DataGridView 创建一个新的(空)行时,这个空值无法映射到组合框。因此,我没有忽略错误,而是为组合框设置了默认值。我添加了事件DefaultValuesNeeded
,并将值设置为枚举中的一项。像这样:
private void phoneNumberGrid_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
// Prevent System.ArgumentException: DataGridViewComboBoxCell value is not valid
e.Row.Cells["PhoneNumberType"].Value = PhoneNumberType.Private;
}
..异常消失了。