一个用户控件,上面有一个Label,一个ComboBox,一个Timer,
设计的时候显示如下:

用户控件的代码如下:
Public Class UserControl1
Private Sub UserControl1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label1.Text = "测试文字"
ComboBox1.Items.AddRange({"选项1", "选项2", "选项3"})
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
ComboBox1.SelectedIndex = 1
End Sub
End Class
将用户控件添加至窗体,显示如下:

问题:
在将用户控件添加至窗体时,如何保持用户控件设计时候的形态?(即添加至窗体后也是显示第一张图的样子,Label文字为“Label1”,ComboBox无选项)
换言之,就是将用户控件添加至窗体时,如何暂时不运行它的Load事件,即使必须运行Load事件,如何暂时不运行Timer的Tick事件?
貌似跟序列化、反序列化有关,百度了一圈没找到解决方法,学艺不精,求指教。。
------解决思路----------------------
对于winform,在你的 Load 处理方法(或者其它任何必须进行如下处理的方法)第一开始,写
if (Site.DesignMode)
return;
对于其它平台也是一样的机制,只不过对象稍微有所不同。例如对于Silverlight,就是写
if (!DesignerProperties.IsInDesignTool)而对于wpf,就是写WPF就是写
if (!DesignerProperties.GetIsInDesignMode(this))
对于asp.net等平台的组件/控件也是类似。