How can I tell my form is being used in design time and not runtime

Check the the property Form.DesignMode. But, note that when in Visual Inheritance mode (designing a derived form), your Control’s DesignMode property will be true when the base form’s constructor gets executed in the design-time. To workaround this, you could check if the app in which your control is running is not devenv.exe, as follows: string exePath = Application.ExecutablePath; exePath = exePath.ToLower(); if(Application.ExecutablePath.ToLower().IndexOf(‘devenv.exe’) > -1) { // Then you are running in vs.net. }

How do I launch IE or any other process from code?

You can do so using the System.Diagnostics.Process.Start method as follows: // Just specifying the document name will open the appropriate app based on system settings. Process.Start(‘Http://msdn.microsoft.com’) // Open a word document in Word. Process.Start(‘AWordDocument.doc’) // Or open the app directly: Process.Start()

Why do the XP Icons when drawn using Graphics.DrawImage not draw transparently?

Note that it’s only the ImageList class that can draw an Icon with alpha channel properly. So, instead of using the Graphics.DrawImage method, first associate this icon to a ImageList and then use the ImageList.Draw method to draw the icon. Also, note that this is possible only in XP with XP Themes enabled for that application.

How do I prevent resizing of my Controls by the user, via Docking or anchoring or manual resizing during design-time?

The best place to ensure a particular height/width for you control is in the SetBoundsCore override of your Control, as follows: protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified) { int prefHeight = this.GetPreferredHeight(); // Ensure that the height is atleast as big as prefHeight if(height < prefHeight) height = prefHeight; base.SetBoundsCore(x, y, width, height, specified); } Protected Overrides Sub SetBoundsCore(ByVal x As Integer, ByVal y As Integer, ByVal width As Integer, ByVal height As Integer, ByVal specified As BoundsSpecified) Dim prefHeight As Integer = Me.GetPreferredHeight() ’ Ensure that the height is atleast as big as prefHeight If height < prefHeight Then height = prefHeight End If MyBase.SetBoundsCore(x, y, width, height, specified) End Sub