<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><font face="times new roman, new york, times, serif">https://github.com/mono/mono/commit/ecef298bcaf571a3d50e022318b20117f9d0388c introduced another bug that I found today.  Enclosed is the fix.</font><br></div><div><font face="times new roman, new york, times, serif"><br></font></div><div><font face="times new roman, new york, times, serif">DataGridViewTextBoxCell was creating a single (as in static) instance of DataGridViewTextBoxEditingControl to do all editing.  This fails if one edits two text-box cells, because ending the first edit calls Dispose() on the static instance, and the second attempt to edit throws an ObjectDisposedException.</font></div><div><font face="times new roman, new york, times, serif"><br></font></div><div><font face="times new roman, new york, times, serif">The solution is to use
 the control created by DataGridView, instead of maintaining a single static control.</font></div><div><font face="times new roman, new york, times, serif"><br></font></div><div><font face="times new roman, new york, times, serif">Incidentally, this also fixes a bug that I hadn't yet taken the time to track down.  </font><a href="http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.editingcontrolshowing.aspx">http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.editingcontrolshowing.aspx</a> mentions that DataGridView reuses the editing control whenever the cell type does not change between edits, and so any event-handlers placed on the control during the EditingControlShowing event should be removed.  For this to work, control reuse could not be across multiple instances of DataGridView -- the event-handlers put onto editing-controls by other DataGridView instances would be unknowable.
  The previous static-instance code had this flaw; I noticed that event-handlers seemed to accumulate on text-box editing controls across data-grid-views when using Mono, even though I was following the recommended procedure, and that it wasn't happening under .NET and MS Windows.  But no one would have noticed this until https://github.com/mono/mono/commit/f9bea537f1ac41753f2204b8528a6292bb547111 (about 2 months ago), when the EditingControlShowing event was posted for the first time. :-)</div><div><br></div><div>Steven Boswell</div><div><br></div></div></body></html>