当前位置: 代码迷 >> C# >> 用户控件怎么保持其设计形态添加至窗体
  详细解决方案

用户控件怎么保持其设计形态添加至窗体

热度:89   发布时间:2016-05-05 03:30:28.0
用户控件如何保持其设计形态添加至窗体?
一个用户控件,上面有一个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等平台的组件/控件也是类似。
  相关解决方案