Hi Shawn,
Like I said in my earlier reply, if your code is used as a part of the contstructor's code execution, then you do not have a reliable DesignMode setting, it's value is set after the constructor has been invoked. Your public property's getter will be accessed as a part of the serialization process when the designer is writing it's designer generated code, and you may also have to protect the setter, as when you load a form that has a value assigned to this property within the designer generated code, the designer will access the setter.
This means, you best option is to use:
If VWGContext.Current Is Nothing Then
Return 0
Else
Return Gizmox.WebGUI.Forms.VWGContext.Current.Item("OrgID")
End If
As you want this property to get it's initial value from the current context at runtime, I think it's a good idea to set an attribute for the property to prevent the designer from writing it's value to the designer generated code, which means you don't urgently have to protect the setter from the designer. To accomplish this, you place a DesignerSerializationVisibility attribute on the property, like this:
<System.ComponentModel.DesignerSerializationVisibility(ComponentModel.DesignerSerializationVisibility.Hidden)> _
Public Property OrgID() As Integer
You can see more on this attribute on MSDN here.
Regarding your use of System.ComponentModel.LicenseManager.UsageMode, then I don't think it will be of any value for you in this context, as you can see in this MSDN article here.
Hope this helps,
Palli