System.Windows.Forms.Form.ChangingParent C# (CSharp) Method

ChangingParent() private method

private ChangingParent ( Control new_parent ) : void
new_parent Control
return void
		internal void ChangingParent (Control new_parent)
		{
			if (IsMdiChild) {
				return;
			}
			
			bool recreate_necessary = false;
			
			if (new_parent == null) {
				window_manager = null;
			} else if (new_parent is MdiClient) {
				window_manager = new MdiWindowManager (this, (MdiClient) new_parent);
			} else {
				window_manager = new FormWindowManager (this);
				recreate_necessary = true;
			}
			
			if (recreate_necessary) {
				if (IsHandleCreated) {
					if (new_parent != null && new_parent.IsHandleCreated) {
						RecreateHandle ();
					} else {
						DestroyHandle ();
					}
				}
			} else {
				if (IsHandleCreated) {
					IntPtr new_handle = IntPtr.Zero;
					if (new_parent != null && new_parent.IsHandleCreated) {
						new_handle = new_parent.Handle;
					}
					XplatUI.SetParent (Handle, new_handle);
				}
			}
		
			if (window_manager != null) {
				window_manager.UpdateWindowState (window_state, window_state, true);
			}
		}
Form