<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><span>The EditingControlShowing event has to be called, and it has to be called after the control's contents have been initialized properly...that's not really two separate issues.</span></div><div><span><br></span></div><div><span>The enclosed patch is an updated version; in addition to having a unit test, it fixes one additional bug revealed by my testing. Before, DataGridViewComboBoxCell.InitializeEditingControl() was setting the initial value from the FormattedValue property, instead of the initialFormattedValue parameter.</span></div><div><span><br></span></div><div><span>I tried to write an additional unit test that worked with bound data, but for the life of me I can't figure out why it doesn't work.  I've done data-binding with DataGridView before...it wasn't this mysterious.  In my unit test,
 after I set the DataGridView's DataSource property, the data-grid doesn't initialize properly; instead of four rows, it ends up with one row, and all its cell values are null.  After beating my head against the wall for several hours, I'm perfectly happy to be told what a moron I am, if someone will just tell me why the EditingControlShowingTest_Bound test doesn't work. :-)</span></div><div><span><br></span></div><div><span>Steven Boswell</span></div><div><br></div>  <div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "> <div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "> <div dir="ltr"> <font size="2" face="Arial"> <hr size="1">  <b><span style="font-weight:bold;">From:</span></b> Stifu <stifu@free.fr><br> <b><span style="font-weight: bold;">To:</span></b> mono-devel-list@lists.ximian.com <br> <b><span style="font-weight: bold;">Sent:</span></b> Saturday, June 2,
 2012 8:45 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [Mono-dev] Patches for mono-winforms<br> </font> </div> <br>
Alright. Patch 6 has been pushed<br>(<a href="https://github.com/mono/mono/commit/3d04a14a278d6160e33c16b52b86d68fe45d80b1" target="_blank">https://github.com/mono/mono/commit/3d04a14a278d6160e33c16b52b86d68fe45d80b1</a>).<br><br>I'll take care of the rest later, when I feel less lazy. :)<br>About patch 1, if there are indeed 2 separate issues, then it's better to<br>split the patch in 2, and also include 2 unit tests if possible.<br><br>Thanks.<br><br><br>Steven Boswell II wrote<br>> <br>> Patch 1 is for <a href="https://bugzilla.xamarin.com/show_bug.cgi?id=5419" target="_blank">https://bugzilla.xamarin.com/show_bug.cgi?id=5419</a> .<br>> Patch 2 is for <a href="https://bugzilla.xamarin.com/show_bug.cgi?id=5420" target="_blank">https://bugzilla.xamarin.com/show_bug.cgi?id=5420</a> .<br>> Patch 3 is for <a href="https://bugzilla.xamarin.com/show_bug.cgi?id=3415"
 target="_blank">https://bugzilla.xamarin.com/show_bug.cgi?id=3415</a> .<br>> I attached the relevant patch to all three of those bug reports.<br>> Patch 6 is<br>> for <a href="https://bugzilla.novell.com/show_bug.cgi?id=567331 and https://bugzilla.novell.com/show_bug.cgi?id=668012 " target="_blank">https://bugzilla.novell.com/show_bug.cgi?id=567331 and https://bugzilla.novell.com/show_bug.cgi?id=668012 </a>.<br>>  I would post my patches to those bug reports, but Novell wants WAY too<br>> much personal information just to reply to a bug report.<br>> I don't see reports for the other bugs.<br>> <br>> I'll go read about NUnit now.<br>> <br>> Thanks for reviewing my bug fixes!<br>> <br>> Steven Boswell<br>> <br>> <br>> ________________________________<br>>  From: Stifu &lt;stifu@&gt;<br>> To: mono-devel-list@.ximian <br>> Sent: Friday, June 1, 2012 4:33
 PM<br>> Subject: Re: [Mono-dev] Patches for mono-winforms<br>>  <br>> You could just write tests for what's easy to test, and leave the rest.<br>> As a bonus, you could post links to related bug reports here, and attach<br>> patch + unit test (if any) in each of them. You don't need to bother with<br>> GitHub for now.<br>> <br>> I'll have a look and review what I can.<br>> <br>> Thanks.<br>> <br>> <br>> Steven Boswell II wrote<br>>> <br>>> I reported a few of them in Bugzilla, but I wasn't sure if that database<br>>> got any attention, e.g. the DataGridView.SelectionRows bug wasreported<br>>> months ago and go no reply.  I don't currently have an account on GitHub;<br>>> if I absolutely must have one, I'll go make one, but I wasn't planning to<br>>> do that unless I started making tons of changes or something.  Also, how<br>>> does one write a unit test for
 something that has to be verified visually<br>>> (e.g. fixing ToolStripItem.BackColor) or via user interaction (e.g.<br>>> fixing<br>>> DataGridView.SelectionRows)?  So I suppose, yes, I need help :-)<br>>> <br>>> Steven Boswell<br>>> <br>>> <br>>> <br>>> ________________________________<br>>>  From: Stifu &lt;stifu@&gt;<br>>> To: mono-devel-list@.ximian <br>>> Sent: Thursday, May 31, 2012 11:06 PM<br>>> Subject: Re: [Mono-dev] Patches for mono-winforms<br>>>  <br>>> Hello,<br>>> <br>>> Thanks for your work.<br>>> <br>>> If I'm not mistaken, you reported each of these bugs, right? At least I<br>>> could find the two first ones in bugzilla, but didn't go further. Anyway,<br>>> I<br>>> suggest you make pull requests for each bug separately, specifying the<br>>> bug<br>>> number. Also, please
 include unit tests with each patch, highlighting<br>>> what<br>>> was fixed. I know it's more work, but it will make commiters more<br>>> confident<br>>> with your changes, and will guarantee no one will ever break these parts<br>>> again.<br>>> <br>>> Let me know if you need help.<br>>> <br>>> <br>>> Steven Boswell II wrote<br>>>> <br>>>> I work in a shop where our apps are written with C# and WinForms.  Thank<br>>>> God for Mono; I'm allowed to do all my work under Linux with Mono, and<br>>>> my<br>>>> code works fine under MS Windows and .NET.<br>>>> <br>>>> Recently, I ran into a showstopper bug in mono-winforms, and finally<br>>>> decided to look through the code.  I fixed the bug quickly.  That led me<br>>>> to looking for the source of other, non-showstopper bugs I've<br>>>>
 encountered,<br>>>> and those went quickly too.  Enclosed is an archive with all of the bug<br>>>> fixes I made, which were made against the latest version on GitHub.  (I<br>>>> originally made these bug fixes against version 2.10.5, the most recent<br>>>> one in Fedora Core 16's yum repos.)<br>>>> <br>>>> Patch 1 implements the EditingControlShowing event in DataGridView.<br>>>>  Before, it wasn't called at all.  I had to split a<br>>>> DataGridViewCell.StyleEditingControl() method off of<br>>>> DataGridViewCell.InitializeEditingControl(); under .NET, ComboBox.Items<br>>>> is<br>>>> initialized before EditingControlShowing is posted, and this split was<br>>>> necessary to get Mono to work that way too.  Styles modified in the<br>>>> EditingControlShowing event are now applied to text-box and
 checkbox<br>>>> controls too, not just combo-boxes.<br>>>> <br>>>> Patch 2 resolves different behavior between .NET and Mono when the user<br>>>> leaves a DataGridView.  Under .NET, the last-edited cell is committed;<br>>>> under Mono, changed made to the last-edited cell are lost.  It was a<br>>>> one-line fix.<br>>>> <br>>>> Patch 3 fires the DataGridView.SelectionChanged event when the selected<br>>>> rows/columns changes.  Before, the values of the SelectedRows and<br>>>> SelectedColumns properties were semi-random during the SelectionChanged<br>>>> event; now they're accurate.<br>>>> <br>>>> Patches 4 and 5 fix two different exception-throws I encountered when<br>>>> ComboBox.Items.Remove() is called with an item that's not in the combo<br>>>> box.  .NET doesn't throw any exceptions in this
 case.<br>>>> <br>>>> Patch 6 fixes the implementation of BackColor on ToolStripItem objects.<br>>>>  Now it behaves like it does under .NET, i.e. the BackColor setting on<br>>>> menu items etc. shows up.<br>>>> <br>>>> I would very much appreciate it if you would consider committing these<br>>>> changes.  My MS-Windows-oriented co-workers were impressed by how<br>>>> quickly<br>>>> bugs in Mono can be found and fixed.  Who knows, maybe I'll get some<br>>>> converts to open-source.  (It amazes me that this sort of thing still<br>>>> has<br>>>> to be evangelized...sigh.)<br>>>> <br>>>> Steven Boswell<br>>>> <br>>>> _______________________________________________<br>>>> Mono-devel-list mailing list<br>>>> Mono-devel-list@.ximian<br>>>> <a
 href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>>>> <br>>> <br>>> --<br>>> View this message in context:<br>>> <a href="http://mono.1490590.n4.nabble.com/Patches-for-mono-winforms-tp4649620p4649621.html" target="_blank">http://mono.1490590.n4.nabble.com/Patches-for-mono-winforms-tp4649620p4649621.html</a><br>>> Sent from the Mono - Dev mailing list archive at Nabble.com.<br>>> _______________________________________________<br>>> Mono-devel-list mailing list<br>>> Mono-devel-list@.ximian<br>>> <a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>>> _______________________________________________<br>>> Mono-devel-list mailing list<br>>> Mono-devel-list@.ximian<br>>> <a
 href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>>> <br>> <br>> --<br>> View this message in context:<br>> <a href="http://mono.1490590.n4.nabble.com/Patches-for-mono-winforms-tp4649620p4649644.html" target="_blank">http://mono.1490590.n4.nabble.com/Patches-for-mono-winforms-tp4649620p4649644.html</a><br>> Sent from the Mono - Dev mailing list archive at Nabble.com.<br>> _______________________________________________<br>> Mono-devel-list mailing list<br>> Mono-devel-list@.ximian<br>> <a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>> _______________________________________________<br>> Mono-devel-list mailing list<br>> Mono-devel-list@.ximian<br>> <a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list"
 target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>> <br><br>--<br>View this message in context: <a href="http://mono.1490590.n4.nabble.com/Patches-for-mono-winforms-tp4649620p4649654.html" target="_blank">http://mono.1490590.n4.nabble.com/Patches-for-mono-winforms-tp4649620p4649654.html</a><br>Sent from the Mono - Dev mailing list archive at Nabble.com.<br>_______________________________________________<br>Mono-devel-list mailing list<br><a ymailto="mailto:Mono-devel-list@lists.ximian.com" href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br><a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br><br><br> </div> </div>  </div></body></html>