在窗体上放一个SSTab控件,设置成三个页面,在每个页面分别放一个文本框,在按纽的单击事件放入以下代码:
Private Sub Command1_Click()
    Text1.Left = 300
    Text1.Width = 4000
    Text1.Height = 2000
    Text1.Top = 1023
       
    Text2.Left = 300
    Text2.Width = 4000
    Text2.Height = 2000
    Text2.Top = 1500
    
    Text3.Left = 300
    Text3.Width = 4000
    Text3.Height = 2000
    Text3.Top = 1800
End Sub
为什么执行了三个文本框都跑到第一个页面来了呢?第2,第3 页面也还有呀?这是为什么?急用呀!

解决方案 »

  1.   

    调整文本框的left值的时候用一个相对值就行了,比如text1.left=text1.left+60
      

  2.   

    原理是这样的,看起来sstab把不同选项卡上的内容放在不同层上,所以我们单击选项卡时只能看到该卡上的内容,其实不是这样的,实际上这个控件里所有的东西仍然是在同一层中,不过我们单击某一个选项卡时,VB自动把其他选项卡上的控件的left值设成一个很大的负数,也就是放在了窗体的“很左边”的地方了,所以我们看不到了。
    而你如果硬要用text2.left=200这样的语句,text2自然会让你给“拽”回来了!
      

  3.   

    还是不行?你改成下面的代码看看效果,当然具体数值还得你根据具体情况修改:
    Private Sub Command1_Click()
        Text1.Left = Text1.Left - 300
        Text1.Width = 4000
        Text1.Height = 2000
        Text1.Top = 1023
           
        Text2.Left = Text2.Left - 300
        Text2.Width = 4000
        Text2.Height = 2000
        Text2.Top = 1500
        
        Text3.Left = Text3.Left - 300
        Text3.Width = 4000
        Text3.Height = 2000
        Text3.Top = 1800
    End Sub
      

  4.   

    Private Sub Command1_Click()
        Text1.Left =Text1.Left + 300
        Text1.Width = 4000
        Text1.Height = 2000
        Text1.Top = 1023
           
        Text2.Left =Text2.Left + 300
        Text2.Width = 4000
        Text2.Height = 2000
        Text2.Top = 1500
        
        Text3.Left =Text3.Left + 300
        Text3.Width = 4000
        Text3.Height = 2000
        Text3.Top = 1800
    End Sub
      

  5.   

    跟踪了一下, 的确是这样的,left被设置成了一个很大的负值!
      

  6.   

    sstab不是这么用的.
    比较多的用法是:将FRAME控件按照SSTAB的页数建立一个控件数组,比如:SSTAB有3页,那么就建立FRAME1(0),FRAME1(1)和FRAME(2)
    然后将需要分页显示的控件分别放到相应的FRAME里面,注意:是作为FRAME的子控件,而不是简单的将位置放在上面.这样当该FRAME不可见的时候里面的控件也就不可见了.然后在SSTAB的代码中写: 
    SSTAB_CLICK(INDEX AS INTEGER)
    DIM I AS LONG
    FOR I 0 TO FRAME1.COUNT-1
       FRAME1(I).VISIBLE=FALSE
    NEXT
    FRAME1(INDEX).VISIBLE=TURE.
    END SUB基本上就是这样,或许我写错了SSTAB事件的参数,但是原理就是这样.
    即:在按下一个SSTAB的时候将所有FRAME都不可见,再将和SSTAB这一页对应的FRAME显示出来.
    因为每一页的控件都放在FRAME内部了,因此这些控件也会随着FRAME的VISIBLE变得可见或不可见.顺便说一下,将控件放到FRAME里面的方法是点一下工具栏内的控件,然后在FRAME里面画上去.
    如果是要建立控件数组,则是先选一个控件,然后选中相应的FRAME再按粘贴.
      

  7.   

    当然,也有人会用PICTURE控件来代替FRAME作为控件容器,做法是一样的
      

  8.   

    同意WallesCai(沧海明月一度,西风残阳无悔  我就是这么用的