internal void FocusActiveControlInternal() { if (active_control != null && active_control.Visible) { // Avoid focus loops, especially with ComboBoxes, on Win98/ME. IntPtr focusHandle = XplatUI.GetFocus(); if (focusHandle == IntPtr.Zero || Control.FromChildHandle(focusHandle) != active_control) { XplatUI.SetFocus(active_control.Handle); } } else { // Determine and focus closest visible parent ContainerControl cc = this; while (cc != null && !cc.Visible) { Control parent = cc.Parent; if (parent != null) { cc = parent.GetContainerControl() as ContainerControl; } else { break; } } if (cc != null && cc.Visible) { XplatUI.SetFocus(cc.Handle); } } }
private bool ActivateControlInternal(Control active) { bool activated = true; bool activate = false; ContainerControl container; Control parent = base.Parent; if (parent != null) { container = parent.GetContainerControl() as ContainerControl; if (container != null && container.ActiveControl != this) { activate = true; if (!container.ActivateControlInternal(this)) { return(false); } } } if (active != activeControl || activate) { if (active == this) { activated = SetActiveControl(null); } else { activated = SetActiveControl(active); } } return(activated); }
private static void ExtractErrorProviders(Control control, ICollection<ErrorProvider> errorProviders) { //use reflection to get to "components" field var containerControl = control.GetContainerControl(); if (containerControl != null) { FieldInfo componentField = containerControl.GetType() .GetField( "components", BindingFlags.NonPublic | BindingFlags.Instance ); if (componentField != null) { //get the component collection from field object components = componentField.GetValue(containerControl); if (components != null) { //locate the ErrorProvider within the collection var container = components as IContainer; if (container != null) { foreach (ErrorProvider provider in container.Components.OfType<ErrorProvider>()) { if (!errorProviders.Contains( provider )) errorProviders.Add( provider ); } } } } } }
public static object CallControlGetContainerControl(Control c, object[] obj) { return c.GetContainerControl(); }
public static object CallControlGetContainerControl(Control c, object[] obj) { return(c.GetContainerControl()); }
protected virtual ErrorProvider GetErrorProvider(Control rootControl) { return new ErrorProvider { ContainerControl = rootControl.GetContainerControl() as ContainerControl }; }
public void TestPublicMethods () { // Public Methods that force Handle creation: // - CreateControl () // - CreateGraphics () // - GetChildAtPoint () // - Invoke, BeginInvoke throws InvalidOperationException if Handle has not been created // - PointToClient () // - PointToScreen () // - RectangleToClient () // - RectangleToScreen () Control c = new Control (); c.BringToFront (); Assert.IsFalse (c.IsHandleCreated, "A1"); c.Contains (new Control ()); Assert.IsFalse (c.IsHandleCreated, "A2"); c.CreateControl (); Assert.IsTrue (c.IsHandleCreated, "A3"); c = new Control (); Graphics g = c.CreateGraphics (); g.Dispose (); Assert.IsTrue (c.IsHandleCreated, "A4"); c = new Control (); c.Dispose (); Assert.IsFalse (c.IsHandleCreated, "A5"); c = new Control (); //DragDropEffects d = c.DoDragDrop ("yo", DragDropEffects.None); //Assert.IsFalse (c.IsHandleCreated, "A6"); //Assert.AreEqual (DragDropEffects.None, d, "A6b"); //Bitmap b = new Bitmap (100, 100); //c.DrawToBitmap (b, new Rectangle (0, 0, 100, 100)); //Assert.IsFalse (c.IsHandleCreated, "A7"); //b.Dispose (); c.FindForm (); Assert.IsFalse (c.IsHandleCreated, "A8"); c.Focus (); Assert.IsFalse (c.IsHandleCreated, "A9"); c.GetChildAtPoint (new Point (10, 10)); Assert.IsTrue (c.IsHandleCreated, "A10"); c.GetContainerControl (); c = new Control (); Assert.IsFalse (c.IsHandleCreated, "A11"); c.GetNextControl (new Control (), true); Assert.IsFalse (c.IsHandleCreated, "A12"); #if NET_2_0 c.GetPreferredSize (Size.Empty); Assert.IsFalse (c.IsHandleCreated, "A13"); #endif c.Hide (); Assert.IsFalse (c.IsHandleCreated, "A14"); c.Invalidate (); Assert.IsFalse (c.IsHandleCreated, "A15"); //c.Invoke (new InvokeDelegate (InvokeMethod)); //Assert.IsFalse (c.IsHandleCreated, "A16"); c.PerformLayout (); Assert.IsFalse (c.IsHandleCreated, "A17"); c.PointToClient (new Point (100, 100)); Assert.IsTrue (c.IsHandleCreated, "A18"); c = new Control (); c.PointToScreen (new Point (100, 100)); Assert.IsTrue (c.IsHandleCreated, "A19"); c = new Control (); //c.PreProcessControlMessage ??? //c.PreProcessMessage ??? c.RectangleToClient (new Rectangle (0, 0, 100, 100)); Assert.IsTrue (c.IsHandleCreated, "A20"); c = new Control (); c.RectangleToScreen (new Rectangle (0, 0, 100, 100)); Assert.IsTrue (c.IsHandleCreated, "A21"); c = new Control (); c.Refresh (); Assert.IsFalse (c.IsHandleCreated, "A22"); c.ResetBackColor (); Assert.IsFalse (c.IsHandleCreated, "A23"); c.ResetBindings (); Assert.IsFalse (c.IsHandleCreated, "A24"); c.ResetCursor (); Assert.IsFalse (c.IsHandleCreated, "A25"); c.ResetFont (); Assert.IsFalse (c.IsHandleCreated, "A26"); c.ResetForeColor (); Assert.IsFalse (c.IsHandleCreated, "A27"); c.ResetImeMode (); Assert.IsFalse (c.IsHandleCreated, "A28"); c.ResetRightToLeft (); Assert.IsFalse (c.IsHandleCreated, "A29"); c.ResetText (); Assert.IsFalse (c.IsHandleCreated, "A30"); c.SuspendLayout (); Assert.IsFalse (c.IsHandleCreated, "A31"); c.ResumeLayout (); Assert.IsFalse (c.IsHandleCreated, "A32"); #if NET_2_0 c.Scale (new SizeF (1.5f, 1.5f)); Assert.IsFalse (c.IsHandleCreated, "A33"); #endif c.Select (); Assert.IsFalse (c.IsHandleCreated, "A34"); c.SelectNextControl (new Control (), true, true, true, true); Assert.IsFalse (c.IsHandleCreated, "A35"); c.SetBounds (0, 0, 100, 100); Assert.IsFalse (c.IsHandleCreated, "A36"); c.Update (); Assert.IsFalse (c.IsHandleCreated, "A37"); }