I have a Datagridview control in a winForm application bound to a data adapter that references an Access 2007 table. The properties AlowUserToAddRows, AllowUserToDeleteRows, and MultiSelect are all set to True. Everything works find except the following case:
If the user selects all the rows in the datagridview including the “*” row at the bottom of the datagridview and press the Delete key. All the displayed records disappear and the “*” row is highlighted (selected). Next the user clicks in the first column (or any column) of the “*” row and attempts to enter new data. Upon depressing a keyboard key the message below appears.
The following exception occurred in the DataGridView:
System.IndexOutOfRangeException: Index 0 does not have a value. at
System.Windows.Forms.CurrencyManager.get_Item(Int32 index) at
To replace this default dialog please handle the DataError event.
Note: Selecting all the rows except the “*” row at the bottom of the DataGridView works as expected. Also, selecting only the “*” row while there are other rows in the DatGridView, and pressing the delete key and entering new data works just fine. The error happens when all rows included the “*” rows are deleted and new data is entered.
Any ideas on how to fix this problem?