Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by [EMAIL PROTECTED]

http://bugzilla.ximian.com/show_bug.cgi?id=78486

--- shadow/78486        2006-06-14 03:09:20.000000000 -0400
+++ shadow/78486.tmp.31557      2006-06-14 03:16:02.000000000 -0400
@@ -1,23 +1,23 @@
 Bug#: 78486
 Product: Mono: Class Libraries
 Version: 1.1
-OS: 
+OS: unknown
 OS Details: 
 Status: NEW   
 Resolution: 
-Severity: 
+Severity: Unknown
 Priority: Minor
 Component: Windows.Forms
 AssignedTo: [EMAIL PROTECTED]                            
 ReportedBy: [EMAIL PROTECTED]               
 QAContact: [EMAIL PROTECTED]
 TargetMilestone: ---
 URL: 
 Cc: 
-Summary: ContainerControl should not receive focus
+Summary: [PATCH] ContainerControl should not receive focus
 
 The following example demonstrates that either UserControl or Form steals a
 focus from its child Button:
 
 using System;
 using System.Drawing;
@@ -66,6 +66,60 @@
 this problem does not happen.
 
 ------- Additional Comments From [EMAIL PROTECTED]  2006-06-14 03:09 -------
 Created an attachment (id=17176)
 proposed fix
 
+
+------- Additional Comments From [EMAIL PROTECTED]  2006-06-14 03:15 -------
+At first I doubted that such conditioning to pass control focus is
+done by WS_EX_CONTROLPARENT, but it does not look so:
+
+--------
+using System;
+using System.Windows.Forms;
+
+public class Test : Form
+{
+       public static void Main ()
+       {
+               Application.Run (new Test ());
+       }
+
+       public Test ()
+       {
+               MyContainerControl c = new MyContainerControl ();
+               Controls.Add (c);
+               Controls.Add (new MyButton ());
+               Console.WriteLine (c.Params);
+               Visible = true;
+               Console.WriteLine ("{0} {1}", c.CanFocus, c.CanSelect);
+               c.Controls.Add (new Button ());
+               Console.WriteLine ("{0} {1}", c.CanFocus, c.CanSelect);
+       }
+}
+
+public class MyContainerControl : ContainerControl
+{
+       public CreateParams Params {
+               get { return CreateParams; }
+       }
+}
+
+public class MyButton : Button
+{
+       // This verifies that WS_EX_CONTROLPARENT does not immediately means
+       // that it does not receive focus.
+       protected override CreateParams CreateParams {
+               get { 
+                       CreateParams basis = base.CreateParams;
+                       basis.ExStyle |= 0x10000; // WS_EX_CONTROLPARENT
+                       return basis;
+               }
+       }
+}
+--------
+
+MyButton receives focus as usual (while it has WS_EX_CONTROLPARENT).
+So I think only ContainerControl class matters. Conditioning by
+WS_EX_CONTROLPARENT (changing ContainerControl.CreateParams) is wrong
+since such changes make MyButton not focusible.
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to