现在有个WIN FORM 的 Solution, 假设里面有 4 个 Projects
Project A 定义一些公共的函数, 变量等
Project B 自定义控件(例如:自定义 TextBox, CheckBox 等)
Project C 主程序
Project D dll 项目现在的关系是,  
B 调用到 A
C, D 调用到 A, B
现在的问题是, 我想再定义一些自定义控件, 这些控件要调用到 D 的某些表单
我不能在 B中定义, 如果在B中定义, D 调用 B的话,就循环调用,而出错,应该怎样实现这个功能呢? 请指教!

解决方案 »

  1.   

    D 的某些表单?
    D不是dll吗?怎么会有表单
    朋友,简单的问题不要复杂化了,哈哈
      

  2.   


    dll 是一个项目, 一个项目当然有表单啦
      

  3.   

    增加的自定义控件, 比如一个 TextBox 的自定义控件, 固定显示PO单号, 
    在这个自定义控件增加一个右键菜单, 右键选择打开这个 "PO的详细信息表单"
    而"PO的详细信息表单"是定义在 D 的 dll 项目中的
      

  4.   

    D 调用 B...这就是错的...控件是给UI用的...无UI类库不应该调用控件库...
      

  5.   


    D虽然是DLL项目, 但里面包含有表单,有UI的
      

  6.   

    那你就再加一个项目E...E调用D B...
      

  7.   

    主程序C, 分别调用其他 DLL 项目, 来打开表单
    分开不同的DLL项目是分模块管理
      

  8.   

    我想是增加一个项目E, 不能使用调用的方法, 
    而是使用其他方法来调用其他DLL里面表单
      

  9.   


    要调用D的表单,这里的D应该是UI,看能不能把D里的表单抽象出来,做成基类放在E里,然后D的表单从这些基类中派生出来。
    如果不能,那就不能再建一个项目了,直接在项目D里添加一个文件夹,把那些写在文件夹里。
      

  10.   

    建议你先添加一个project,然后整理调用的关系
      

  11.   

    在不改动其他代码的情况下:
    搂主只能把新增的那些一些自定义控件放入主程序里面,
    或者放入Project D中,也是很合理的