在设计时,把SSTab控件的Tab数量设为1个,加上一个frame控件frameNod,索引值为0,frameNod中加一个Label控件lblName等,索引值也为0我想在查询数据库后,让数据在lblName上显示,每Tab上显示10个frameNod
部分程序如下:    If Not (rsShow.EOF And rsShow.BOF) Then        '打开后若非空记录
        rsShow.MoveFirst
        countNod = rsShow.RecordCount
        X = (SSTab1.Width - frameNod(0).Width * 2) / 6       '每行显示2个
        Y = (SSTab1.Height - frameNod(0).Height * 5) / 12    '每列显示5个 For i = 0 To countNod - 1        '循环显示每个记录的数据
    If i <> 0 Then     '0 是设计时已经有了,就不再增加
                 Load frameNod(i)
        Load lblName(i)
                 Set lblName(i).Container = frameNod(i)   '把lblName(i)放在frameNod(i)
                 If (i Mod 10) = 0 Then               '每10个增加一个Tab
            SSTab1.Tabs = SSTab1.Tabs + 1    
                     SSTab1.Tab = Int(i / 10)         '把新增加的Tab设成当前的Tab
        End If
    End If            frameNod(i).Caption = rsShow.Fields("编号")         
            frameNod(i).Left = (frameNod(0).Width + 2 * X) * ((i Mod 10) Mod 2) + 2 * X
            frameNod(i).Top = (frameNod(0).Height + 2 * Y) * Int((i Mod 10) / 2) + 2 * Y
            frameNod(i).Visible = True            lblName(i) = "名称:" + rsShow.Fields("名称")   'lblName
            lblName(i).Left = lblName(0).Left
            lblName(i).Top = lblName(0).Top
            lblName(i).Visible = True            rsShow.MoveNext
        Next i
    Else
        MsgBox "现在库中还没有信息,请先加入数据
        Exit Sub
    End If
如果检索出来有12条记录,那么到第11条记录时,就增加一个Tab,然后用SSTab1.Tab = Int(i / 10)这条语句把新增加的Tab设成当前的Tab,本以为新增加的frameNod会显示在当前的Tab上,但问题是还显示在头一个Tab里,请问设置如何才能让它显示在第二页上?

解决方案 »

  1.   


    有些时间没有来了。向各位兄弟问个好!!'**************************************要清楚回答你的问题,首先要弄清选项卡是如何工作的。
    在习惯上,我们在单击TAB(0),TAB(1)时,选项卡总是显示我们所在卡上分好组的控件,让我们发生了一个错觉。好象选项卡是给我们分好层了。其实,选择并没有为我们分好层,所有放在选卡上的控件全部都是同一层次的。之所以给我们错觉,是因为选项卡会记住每个卡的控件名。如是不是这个卡上的,将其的LEFT值设置为一个很大的负值,即将其移到最左边。我们可以做一个实验:在窗体上放一个先项卡:SSTAB1,然后在TAB(0)上放一个COMMAND1,在TAB(1)上放一个COMMAND2,在TAB(2)上放一个COMMAND3,在窗体上再放一个COMMAND4,Private Sub Command4_Click()
           Command2.Left = 780
           Command3.Left = Command2.Left+800
    End Sub
    当你单击COMMAND4时,无论你在那个选项卡,COMMAND2,COMMAND3总能看见。
    呵呵。原来SSTAB是这样工作的。
    所以,建议你在每个TAB上放一个PICTURE,以PICTUREBOX作为容器,然后在PICTUREBOX中动态添加控件即可。写了一大通,言不成章,希望楼主能明白我的意思。。  :-)
      

  2.   

    没听懂楼主的意思,添加的fram应该可看到的啊
      

  3.   

    谢谢 MSTOP(陈建华) ,写的非常明白。问题解决了!我把安排显示位置的语句放在 Private Sub SSTab1_Click(PreviousTab As Integer) 中
    就可以显示出来了