举个例子
有ABCD四个窗体
A:显示产品1的数据库
B:显示产品2的数据库
C:和A相似,但多了一个"删除"按钮
D:和B相似,但多了一个"删除"按钮如果一个一个写代码的话太麻烦,也不方便维护
有没有比较OO的,写一个代码,就可以让四个窗体共享BTW,开始我将公共代码写入Module1中,但发现从窗体到module传数据太麻烦

解决方案 »

  1.   

    1、在同一个窗体中调用,不同过程。如果显示需要可以修改控件的visible属性。
    2、写控件了,然后提供控件中子控件的事件及属性接口。
      

  2.   

    动态加载
    Dim newform As New Form1
    newform.show
      

  3.   

    2、写控件了,然后提供控件中子控件的事件及属性接口
    --------------
    窗体怎么写控件?
    能举个例子吗动态加载
    Dim newform As New Form1
    --------------
    Form1代表什么多谢
      

  4.   

    方法有:
    1、做好A、B窗体,然后另存为C、D。
    2、做好C、D窗体,当要调用如A、B窗体的时候,设删除按钮的visible属性
    3、做一个窗体,通过窗体的public变量或者传送的参数,来显示数据库,以及决定删除按钮的visible属性
      

  5.   

    做一个窗体可以,但是如果所要显示的label的Caption等不同的话,那不是要画很多个label和文本框等之类的控件。我建议楼主可采用动态生成控件,然后赋值不现的属性。能过不同的Flag值再对数据表做不同的操作。
      

  6.   

    一个窗体就够了。
    交流MSN:[email protected]
      

  7.   

    有没有更OO的方法?比如把窗体做成一个控件桑树叶子的办法我也试过,但发现窗体内部的代码太乱.经常要if Flag=* then... elseif flag=* then...这样修改起来很容易出错
      

  8.   

    如果你有很多这样的if语句,说明你的几个窗体只是界面相似,但是处理的功能有很多不同。我所做的系统中,曾经用一个窗体处理过7个界面的。不过加入了一些其它方面的技术。如利用数据来处理。可以写DLL文件,但那是一种调用通用窗体的方法。那种窗体一般是不管在哪个系统中都可以用。做成控件,没有试过,但那好像不太好搞定的。
      

  9.   

    form1 代表已创建的窗体
    newform为由form1创建的新窗体
      

  10.   

    我也推荐使用同一个窗体来实现。其他的采用动态生成控件。这样代码虽然比较多,但是,以后修改的时候很方便,一个修改,就都好了!private form_load
      dim a as object
      select case flag
      case 1
         a = new textbox
         load(a)
         
      case 2
      case 3
      case 4
      end select
    end
      

  11.   

    用一个窗体,放上所有4个窗体要用到的控件,相同的控件一个基本够了。
    修改他们的visiable属性,根据需要显示或者隐藏。到时候修改一下窗体名称(或者干脆不改也行)ok啦
      

  12.   

    首先 a 和 c, b和d 可以合并 只要把设置visible属性 比较oo一点的做法是:
    'Form1
    Option Explicit
    Dim m_nSytle As Integer
    Enum FormSytle
        Normal = 0 '没有删除按钮
        del = 1 '一个删除按钮
    End EnumPublic Property Get Sytle() As FormSytle
        Sytle = m_nSytle
    End Property
    Public Property Let Sytle(nSytle As FormSytle)
        m_nSytle = nSytle
        Select Case m_nSytle
            Case Normal
                Command1.Visible = True
            Case del
                Command1.Visible = False
        End Select
    End Property'使用方法:
    dim frm1 as Form1
    load frm1
    frm1.Sytle=Normal'没有删除按钮
    frm1.show