在DataGridView中,我将一个Cell设置为CellEnterEvent上的ComboBox,并在CellLeaveEvent上将其设置回具有选定值的文本框。 但这会弹出对setCurrentCellAddressCore函数的错误重入调用,该函数的RowIndex为1,ColIndex为1,其余各行均能完美工作。
即使在BeginEdit事件上也可以正常工作,但我希望它在CellEnterEvent上工作
private void grdInvDtl_CellEnter_1(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex < 0)
return;
if (e.ColumnIndex == grdInvDtl.Columns["ProductName"].Index)
对于产品
{
DataGridViewComboBoxCell cb = new DataGridViewComboBoxCell();
cb.DataSource = objPurchaseMast.ProductName();
cb.ValueMember = "PkProductId"; // ProductId
cb.DisplayMember = "ProductName"; // ProductName
if (grdInvDtl.Rows[e.RowIndex].Cells[e.ColumnIndex].GetType() !=
typeof(DataGridViewComboBoxCell))
{
grdInvDtl.CurrentRow.Cells[e.ColumnIndex] = cb;
// grdInvDtl.Rows[e.RowIndex].Cells[e.ColumnIndex] = cb;
grdInvDtl.BeginEdit(true);
((ComboBox)grdInvDtl.EditingControl).DroppedDown = true;
}
}
您的帮助将不胜感激,谢谢。