<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div id="yiv364228878"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "><div id="yiv364228878yui_3_2_0_22_133851810691540">I work in a shop where our apps are written with C# and WinForms.  Thank God for Mono; I'm allowed to do all my work under Linux with Mono, and my code works fine under MS Windows and .NET.</div><div id="yiv364228878yui_3_2_0_22_133851810691540"><br id="yiv364228878yui_3_2_0_22_1338518106915105"></div><div id="yiv364228878yui_3_2_0_22_133851810691540">Recently, I ran into a showstopper bug in mono-winforms, and finally decided to look through the code.  I fixed the bug quickly.  That led me to looking for the source of other, non-showstopper bugs I've encountered, and those went quickly too.
  Enclosed is an archive with all of the bug fixes I made, which were made against the latest version on GitHub.  (I originally made these bug fixes against version 2.10.5, the most recent one in Fedora Core 16's
 yum repos.)</div><div id="yiv364228878yui_3_2_0_22_133851810691540"><br id="yiv364228878yui_3_2_0_22_133851810691558"></div><div id="yiv364228878yui_3_2_0_22_133851810691540">Patch 1 implements the EditingControlShowing event in DataGridView.  Before, it wasn't called at all.  I had to split a DataGridViewCell.StyleEditingControl() method off of DataGridViewCell.InitializeEditingControl(); under .NET, ComboBox.Items is initialized before EditingControlShowing is posted, and this split was necessary to get Mono to work that way too.  Styles modified in the EditingControlShowing event are now applied to text-box and checkbox controls too, not just combo-boxes.</div><div id="yiv364228878yui_3_2_0_22_133851810691540"><br></div><div id="yiv364228878yui_3_2_0_22_133851810691540">Patch 2 resolves different behavior between .NET and Mono when the user leaves a DataGridView.  Under .NET, the last-edited cell is committed; under Mono, changed
 made to the last-edited cell are lost.  It was a
 one-line fix.</div><div id="yiv364228878yui_3_2_0_22_133851810691540"><br></div><div id="yiv364228878yui_3_2_0_22_133851810691540">Patch 3 fires the DataGridView.SelectionChanged event when the selected rows/columns changes.  Before, the values of the SelectedRows and SelectedColumns properties were semi-random during the SelectionChanged event; now they're accurate.</div><div id="yiv364228878yui_3_2_0_22_133851810691540"><br></div><div id="yiv364228878yui_3_2_0_22_133851810691540">Patches 4 and 5 fix two different exception-throws I encountered when ComboBox.Items.Remove() is called with an item that's not in the combo box.  .NET doesn't throw any exceptions in this case.</div><div id="yiv364228878yui_3_2_0_22_133851810691540"><br></div><div id="yiv364228878yui_3_2_0_22_133851810691540">Patch 6 fixes the implementation of BackColor on ToolStripItem objects.  Now it behaves like it does under .NET, i.e. the BackColor setting on menu items
 etc. shows up.</div><div id="yiv364228878yui_3_2_0_22_133851810691540"><br></div><div id="yiv364228878yui_3_2_0_22_133851810691540">I would very much appreciate it if you would consider committing these changes.  My MS-Windows-oriented co-workers were impressed by how quickly bugs in Mono can be found and fixed.  Who knows, maybe I'll get some converts to open-source.  (It amazes me that this sort of thing still has to be evangelized...sigh.)</div><div id="yiv364228878yui_3_2_0_22_133851810691540"><br></div><div id="yiv364228878yui_3_2_0_22_133851810691540">Steven Boswell</div><div id="yiv364228878yui_3_2_0_22_133851810691540"><br></div></div></div></div></div></body></html>