<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><span>Yes, the unit test fails for me without my patch -- I made darn sure of that after wasting your time. ;-)  The additions to my unit test ensure that the EditingControlShowing event is getting called.  Without my patch, Mono never calls that event.  So if it's succeeding for you...I'm totally lost.</span></div><div><span><br></span></div><div><span>Let me know if you need any more info, or any other changes, so that you can commit patch 3.</span></div><div><span><br></span></div><div><span>Also, as far as I can tell, patches 2, 4, and 5 are really small, and defy the creation of unit tests anyway -- it should be enough for someone knowledgeable about WinForms to decide if these changes are correct.  I know that it brings Mono's behavior in line with .NET.  Please let me know if I should do
 anything else with these patches.</span></div><div><span><br></span></div><div>For the time being, I seem to be out of bugs, and am working on annoyances...that's a good sign. :-)  Enclosed is my latest change; there's no unit test because it requires user interaction to even see the problem.  Before, getting a data-grid-view combo-box to drop down its menu took three mouse-clicks.  Now, it only takes one.  This brings the behavior in line with .NET.  Let me know what you think of this change.</div><div><br></div><div>Steven Boswell</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> Sunday, June 3, 2012 3:20 PM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [Mono-dev] Patches for mono-winforms<br> </font> </div> <br>
Nope, I still can't get the tests to fail. :\<br>Does it fail for you (when unpatched)? It's possible the bug doesn't affect<br>Mono on Windows, but I'd like to make sure of it.<br><br>Can't see anything wrong with patch 3 at first sight.<br><br><br>Steven Boswell II wrote<br>> <br>> Sorry about that.  I've added code to make sure the event-handler gets<br>> called.  Enclosed is another attempt.<br>> Also, do you have any further comments about patch 3?  For your<br>> convenience, I've enclosed another copy.<br>> <br>> <br>> ________________________________<br>>  From: Stifu &lt;stifu@&gt;<br>> To: mono-devel-list@.ximian <br>> Sent: Sunday, June 3, 2012 8:58 AM<br>> Subject: Re: [Mono-dev] Patches for mono-winforms<br>>  <br>> I checked out your unit tests for patch 1.<br>> On Mono on Windows, they already pass even without your patch. I cannot<br>> check Linux right
 now.<br>> <br>> Have you double checked that your tests fail without your patch?<br>> Thanks for clearing that up.<br>> <br>> <br>> Steven Boswell II wrote<br>>> <br>>> Crap, I didn't notice that InitializeEditingControl() was public.<br>>> <br>>> My whole motivation for splitting up that method was to make sure that<br>>> the<br>>> style modified by the EditingControlShowing event-handler would be<br>>> applied<br>>> to the cell.  But that's done a few lines later, by the call to<br>>> "dgvEditingControl.ApplyCellStyleToEditingControl (style)".  Argh.<br>>> <br>>> In any case, enclosed is a much simpler patch that doesn't change the<br>>> public API.  Hopefully I didn't do anything else stupid -- I'm truly not<br>>> trying to waste your time. ;-)<br>>> <br>>> Steven Boswell<br>>> <br>>> <br>>>
 ________________________________<br>>>  From: Stifu &lt;stifu@&gt;<br>>> To: mono-devel-list@.ximian <br>>> Sent: Sunday, June 3, 2012 1:33 AM<br>>> Subject: Re: [Mono-dev] Patches for mono-winforms<br>>>  <br>>> This patch does not look good to me, because you're changing the public<br>>> API.<br>>> <br>>> In DataGridViewCell, the InitializeEditingControl method expects 2<br>>> parameters rather than 3 after your patch, which means we're breaking the<br>>> API and are no longer compatible with .NET.<br>>> <br>>> <br>>> Steven Boswell II wrote<br>>>> <br>>>> Argh...one more dumb oversight in my change.<br>>>> Enclosed is ANOTHER version of the patch.<br>>>> I wish I had the luxury of working on my hobbies when I was awake and<br>>>> energetic. ;-)<br>>>> <br>>>> Steven
 Boswell<br>>>> <br>>>> <br>>>> ________________________________<br>>>>  From: Steven Boswell II &lt;ulatekh@&gt;<br>>>> To: "mono-devel-list@.ximian" &lt;mono-devel-list@.ximian&gt; <br>>>> Sent: Saturday, June 2, 2012 7:58 PM<br>>>> Subject: Re: [Mono-dev] Patches for mono-winforms<br>>>>  <br>>>> <br>>>> Rob, you're my hero.  Very few tests in <a target="_blank" href="http://DataGridViewTest.cs">DataGridViewTest.cs</a> create a<br>>>> Form,<br>>>> but most of the ones that do involve data binding.<br>>>> I added a Form to my test, and it succeeded immediately.  Apparently,<br>>>> Application.Run() isn't necessary, but that was a good idea.<br>>>> Enclosed is a revised patch, for review by the Powers That Be.<br>>>> <br>>>> Steven Boswell<br>>>>
 <br>>>> <br>>>> ________________________________<br>>>>  From: Rob Wilkens &lt;robwilkens@&gt;<br>>>> To: mono-devel-list@.ximian <br>>>> Sent: Saturday, June 2, 2012 6:46 PM<br>>>> Subject: Re: [Mono-dev] Patches for mono-winforms<br>>>>  <br>>>> <br>>>> On 06/02/2012 09:38 PM, Rob Wilkens wrote: <br>>>> On 06/02/2012 08:55 PM, Steven Boswell II wrote: <br>>>>>The EditingControlShowing event has to be called, and it has to be<br>called<br>>> after the control's contents have been initialized properly...that's not<br>>> really two separate issues.<br>>>>>><br>>>>>><br>>>>>>The enclosed patch is an updated version; in addition to having a unit<br>>> test, it fixes one additional bug revealed by my testing. Before,<br>>>
 DataGridViewComboBoxCell.InitializeEditingControl() was setting the<br>>> initial<br>>> value from the FormattedValue property, instead of<br>>> the initialFormattedValue<br>>> parameter.<br>>>>>><br>>>>>><br>>>>>>I tried to write an additional unit test that worked with bound data,<br>> but<br>>> for the life of me I can't figure out why it doesn't work.  I've done<br>>> data-binding with DataGridView before...it wasn't this mysterious.  In my<br>>> unit test, after I set the DataGridView's DataSource property, the<br>>> data-grid<br>>> doesn't initialize properly; instead of four rows, it ends up with one<br>>> row,<br>>> and all its cell values are null.  After beating my head against the wall<br>>> for several hours, I'm perfectly happy to be told what a moron I am, if<br>>> someone will just tell me
 why the EditingControlShowingTest_Bound test<br>>> doesn't work. :-)<br>>>>>><br>>>>>><br>>>>>>Steven Boswell<br>>>>>><br>>>>>Not writing to call you a moron, I'm a newbie myself and i could<br>>>>       be wrong...  But i copied and pasted your test code for<br>>>>       EditingControlShowingTest_Bound into Visual Studio 2010, but<br>>>>       rather than creating the DataGridVIew in code i placed it on the<br>>>>       form and modified your code to use the one on the form...  And i<br>>>>       disabled the asserts...  And from what i can tell it runs fine in<br>>>>       both .net and mono (that is, the data grid view populates).<br>>>>><br>>>>>One thing that
 I noticed about your code, though, is it depends on<br>>>>       a 'showing' event..<br>>>>><br>>>>>And i wonder if that means your datagridview needs to be placed on<br>>>>       a form which is displayed, so that it is actually shown...<br>>>>><br>>>>>i.e. change your code something like this:<br>>>>><br>>>>>using (Form Form1=new Form()){<br>>>>>    Form1.Controls.Add(_dataGridView);//optionaly set sizeand<br>>>>       location of both gridview and form<br>>>>>    Form1.Show();<br>>>>><br>>>>>    ... insert the rest of your code here .... <br>>>>>}<br>>>>><br>>>> Oh, and if i'm right, you might need the equivalent of an<br>>>> Application.Run(Form1) to process
 the events since you're listening for<br>>>> events, just don't forget to close Form1 or the Run loop might never end<br>>>> and your test can hang up with a displayed window...<br>>>> <br>>>> <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>>>> _______________________________________________<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-tp4649620p4649670.html" target="_blank">http://mono.1490590.n4.nabble.com/Patches-for-mono-winforms-tp4649620p4649670.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>> --<br>> View this message in context:<br>> <a href="http://mono.1490590.n4.nabble.com/Patches-for-mono-winforms-tp4649620p4649674.html" target="_blank">http://mono.1490590.n4.nabble.com/Patches-for-mono-winforms-tp4649620p4649674.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>--<br>View this message in context: <a href="http://mono.1490590.n4.nabble.com/Patches-for-mono-winforms-tp4649620p4649683.html" target="_blank">http://mono.1490590.n4.nabble.com/Patches-for-mono-winforms-tp4649620p4649683.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>