我自定义一个Combox用户控件,继承自UserControl,此控件从数据库获取特定值并添加到Items中,现在的问题是我把读取数据库并添加Item 的方法写在此控件的构造函数中,导致用户在设计时,Item被添加了一遍,在运行时又被添加了一遍.public LwFileNumComBox()
{
       InitializeComponent();
       AddItems();
}我该如何初始化呢?

解决方案 »

  1.   

    InitializeComponent();
    if (LicenseManager.UsageMode == LicenseUsageMode.Designtime)
    {
        AddItems();
    }
    以上是个偏方。
    更好的办法是指示设计器不要系列化Items。
      

  2.   

    更正:
    InitializeComponent();
    if (LicenseManager.UsageMode != LicenseUsageMode.Designtime)
    ...
      

  3.   

    我原来在一家日本外包公司,框架都是日本总部的人写的,他们写了很多这样的Combox,都是直接拖到界面,什么代码都不用写,运行时就有数据,不知道他们是怎么实现的.