请看下面代码:
    i = 0
    Do While i < RsN
        frmMessage.Show
        frmMessage.txtMessage.Text = RsMess(i + 1)
        i = i + 1
    Loop
我要实现的是在弹出的窗体中显示信息,如信息有多个,则弹出多个窗口,分别显示信息。但我这段代码,只是第二个信息将第一个信息覆盖了,并没有另外弹出窗体显示。
请各位高手赐教,小女子不胜感激,一旦解决,定高分奉送!

解决方案 »

  1.   

    你这样做肯定是要覆盖的。
    你可以采用以下方法:
    1. form show了以后再用move方法
       根据form的width/height/个数来计算其left/top
       但是这样做,用户需要关闭很多个窗口,并不建议
    2. 用一个form显示所以需要显示的信息
       这个就需要看你的需求是否允许这样做了
      

  2.   

    为什么不在窗口中动态创建Text控件以显示信息呢?弹出多个窗口要耗资源的
      

  3.   

    gump2000,您的第一个方法可不可以说的详细些,谢谢
      

  4.   

    dim fMessage() as frmMessage
    i=0
    do while i<RsN
       redim preserve fMessage(0 to i)
       set fMessage(i)=new frmMessage
       fMessage(i).Show
       fMessage(i).txtMessage.Text = RsMess(i + 1)
       i=i+1
    Loop
      

  5.   

    哦?lilaclone,您把您的方法说的详细些好吗?我是个新手,谢谢
      

  6.   

    可以把txtMessage设为控件数组,然后Load txtMessage(Index)即可
      

  7.   

    要注意计算txtMessage(index)控件的位置,如txtMessage(1).Top=txtMessage(0).Top+200等,避免各提示框重叠显示
      

  8.   

    生成一个新的form才Show
    不然Show的一直是刚才的那个Form
    具体参照 gcj123 的方法
    但是这样会打开很多form.并不建议这样做
      

  9.   

    实在不好意思,再次麻烦lilaclone,要怎么样加载?在哪儿加载?为什么我加载时它提示“对象已经加载”?如果我不些load,就提示没有数组1?
      

  10.   

    lilaclone意思是用控件数组
    先设计一个TextBox设置index(好象是)为0
    以后load txtName(i)就可以了
      

  11.   

    你可以用一个全局变量记录已Load控件的Index,以避免重复Load
      

  12.   

    你每次show的都是同一个frmMessage,当然要覆盖了,你应该在for next 循环里面每次生成一个新的frmMessage对象,应该就没有问题。
      

  13.   

    代码如下:
    Private Sub MessageShow()
        Dim strSqlM As String, strSqlM1 As String
        Dim RsN As Integer, i As Integer
        strSqlM = "select reci_name,message from t_message where reci_name='" + UserName + "' and reci_flag='0'"
        adoRsM.Open strSqlM, adoConn, adOpenKeyset, adLockOptimistic
        RsN = 0
        Do While (Not adoRsM.EOF) And (RsN < 100)
            RsN = RsN + 1
            RsMess(RsN) = adoRsM(1)
            adoRsM.MoveNext
        Loop
        adoRsM.Close
        i = 0
        Do While i < RsN
            frmMessage.Show
            If i > 0 Then
                Load frmMessage.txtMessage(i)
            End If
            frmMessage.txtMessage(i).Text = RsMess(i + 1)
            If i > 0 Then frmMessage.txtMessage(i).Top = frmMessage.txtMessage(i - 1).Top + 200
            i = i + 1
        Loop
    End Sub
      

  14.   

    ...看来他还是没有听懂
    ===============
    你每次show的都是同一个frmMessage,当然要覆盖了,你应该在for next 循环里面每次生成一个新的frmMessage对象,应该就没有问题。