Click here to Skip to main content
12,697,620 members (25,792 online)
Click here to Skip to main content

Stats

25.3K views
485 downloads
6 bookmarked
Posted

Resolve DesignMode for a User Control

, 26 Aug 2012 CPOL
The tip shows one way to resolve if a user control is in design mode.
namespace Controls {
	public static class Extensions {
		/// <summary>
		/// Extension method to return if the control is in design mode
		/// </summary>
		/// <param name="control">Control to examine</param>
		/// <returns>True if in design mode, otherwise false</returns>
		public static bool IsInDesignMode(this System.Windows.Forms.Control control) {
			return ResolveDesignMode(control);
		}

		/// <summary>
		/// Method to test if the control or it's parent is in design mode
		/// </summary>
		/// <param name="control">Control to examine</param>
		/// <returns>True if in design mode, otherwise false</returns>
		private static bool ResolveDesignMode(System.Windows.Forms.Control control) {
			System.Reflection.PropertyInfo designModeProperty;
			bool designMode;

			// Get the protected property
			designModeProperty = control.GetType().GetProperty("DesignMode", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);

			// Get the controls DesignMode value
			designMode = (bool)designModeProperty.GetValue(control, null);

         // Test the parent if it exists
			if (control.Parent != null) {
				designMode |= ResolveDesignMode(control.Parent);
			}

			return designMode;
		}
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Mika Wendelius
Architect
Finland Finland
No Biography provided

You may also be interested in...

Pro
Pro
| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.170118.1 | Last Updated 26 Aug 2012
Article Copyright 2012 by Mika Wendelius
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid