Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version
Go to top

Resolve DesignMode for a user control

, 26 Aug 2012
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
I've been a programmer since mid 80's using languages like assembler, C/C++, PL/I (mainframe environment), pascal, VB (I know, I know, no comments please) and C# and utilizing different techniques and tools.
 
However I'm specialized in databases and database modeling. Mostly I have used products like Oracle (from version 6), SQL Server (from version 4.2), DB2 and Solid Server (nowadays an IBM product).
 
For the past 10+ years my main concerns have been dealing with different business processes and how to create software to implement and improve them. At my spare time (what ever that actually means) I'm also teaching and consulting on different areas of database management, development and database oriented software design.

| Advertise | Privacy | Mobile
Web03 | 2.8.140916.1 | Last Updated 26 Aug 2012
Article Copyright 2012 by Mika Wendelius
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid