解决方案 »

  1.   

    使得vs在设计模式下不调用这段语句,这样设计视图就不会加载失败了,
    ----------
    如果你用户控件的DLL需要登录才能使用,你即使想出办法跳过了这个代码,你设计视图是看到了,但是用户控件还是没加载出来,不是么
      

  2.   

    窗体类有2个类文件,一个是form窗体本身的类文件,另一个自动生成的带有Designer标识,
    两个类都使用了parial class表明2个类文件是同一个类下的代码
    不同的是设计器会执行Designer.cs里的代码生成开发时能看到的控件,而不带Designer的cs文件只有运行时执行.
      

  3.   

    我不知道你所说的登陆是登陆到哪里,通过什么验证登陆
    但是如果不登陆就无法使用DLL的话,建议连登陆一起都放到Designer里去
    否则根本没法开发嘛.
    也不知道你之前的代码都是怎么编出来的
      

  4.   

    额···这么说,可能你们会觉得不可思议或者不科学甚至奇葩,我们获取数据不是通过 ado.net 或者 ef 模式的,而是通过调用c++的接口,c++返回数据函数都是通过认证中心,而没有登录的情况下,认证中心当然不会发数据过来了,所以...
    但是如果不在构造函数中调用获取数据的接口,那么很多类都要另外加一个专门获取数据函数,这样代码就繁琐了,实例化了一个对象还要多写一句obj.Refresh()
      

  5.   

    你们取数据用C++还是什么,都无所谓
    问题就是,为什么给用户控件绑定数据的代码一定要放到设计器里,难道开发时就想直接看到数据?
    设计页面只放用户控件相关DLL就可以了
    数据应该在运行时加载
      

  6.   

    因为我用的是WPF,没有Designer.cs这种文件
    在构造函数中加载数据是因为这样:
    public class StrategeCollection:List<Stratege>
    {
          public StrategeCollection()
          {
                //调c++的方法加载数据
          }
          ... ...
          //其他行为
    }
    调用时自然是:
    StrategeCollection list = new StrategeCollection();
    //list.Load();
    ... ...
    如果不在构造函数中获取数据,那么每个这样的对象都要加Load方法了(把构造函数中获取数据的语句放到Load方法去)