我在SSTab控件的三个面中各放置一个MSFlexGrid,但在运行时单击不同页面时,有时会出现放在不同的两个页面中的控件出现重叠现象,即同时两个表都显示出来.删除重叠显示出来的表格再重建后有时显示正常,再显示时又重叠了.哪位知道原因?(可能微软开发时存在错误!)

解决方案 »

  1.   

    你可以用Visiable控制轮流显示,或换个控件,叫MicroSoft Tab Dialog...
      

  2.   

    你用的是sstab吗?应该没问题的
    贴代码看看
      

  3.   

    没有什么代码,只是在SSTab的三个页面中各放了一个表格MSFlexGrid控件。当单第三个页面使之成为当前后,第二个页面的表格与第三个面的表格同时显示出来。太奇怪了。
      

  4.   

    我用的是SSTab,即MicroSoft Tabbed Dialog Control 6.0
      

  5.   

    只在窗体大小改变事件有如下代码:
    Private Sub Form_Resize()
      SSTab2.Move 0, MSFG1.Height, Me.ScaleWidth, Me.ScaleHeight MSFG1.Height - Pic1.Height
      MSFGpl.Move 10, 360, SSTab2.Width - 20, SSTab2.Height - 360
      MSFGsjbc.Move 10, 360, SSTab2.Width - 20, SSTab2.Height - 360
      'MSFGjsbc.Move 10, 360, SSTab2.Width - 20, SSTab2.Height - 360
    End Sub
      

  6.   

    改变不同页里的 控件大小的时候 先让 SSTab 显示出控件所在的页后 再改变大小  
      

  7.   

    '我做了以下几个示例:
    '在设计的时候,分别在不同的页面下加入控件.无论什么控件.
    '比如:你加了一个控件A至第二个页面.
    '当你在第一个页面的时候,你设置了控件A的位置属性,你会发现,控件A本来在第二个页面的,现在到了第一个页面.
    '在其它页面同理.注意哦,控件A在第一页面与第二个页面都能看到了.
    '再试了一下.控件里面的事件.晕,发现一样.也就是说没有增加多的控件出来.只是在每个页面都能见到了.
      

  8.   

    删除了重新放上一个,是不是自己修改了什么属性忘了
    或者先放几个Frame再在Frame上放别的
      

  9.   

    也可以写再单击的事件里 Private Sub SSTab1_Click(PreviousTab As Integer)Select Case SSTab1.Tab
        Case 0
         Me.Picture1.Width = 1000
        Case 1
         Command1.Width = 2000End Select
    End Sub
      

  10.   

    你控件是不是放在SSTAB容器里的?还是放在窗体容器里的?应该不会有你说的问题的,除非你的有些控件放错容器了
      

  11.   

    SSTAB控件是容器,与TabStrip 控件的用法有不同,在设计状态下,可用鼠标选择TAB页。但在各页添加其它控件不要采用双击工具箱控件方法添加,应用选中控件然后在TAB页用鼠标绘制,不然所添加控件为各TAB页共有。当然也可采用TabStrip 控件用以下方法达你目的。 
    TabStrip 控件不是容器。要想包含实际页面和它们的对象,必须用 Frame 控件或者其它容器,它们的大小必须与控件中所有 Tab 对象共享的内部区域匹配。如采用2个Frame控件,各自Frame控件放置你所需其它控件,使用如下代码: 
    Option Explicit 
    Dim flag As Boolean Private Sub Form_Load() 
    Frame1.Visible = True 
    Frame2.Visible = False 
    End Sub Private Sub TabStrip1_Click() 
    If flag Then 
    Frame1.Visible = True 
    Frame2.Visible = False 
    Else 
    Frame1.Visible = False 
    Frame2.Visible = True 
    End If 
    flag = Not flag 
    End Sub 详细请参阅:http://iask.sina.com.cn/b/8668146.html?SHID=1218007367.927zhudingyun808(本人)的答复
    该网址下有相应的工程压缩文件可下载。
      

  12.   

    SSTab就是通过移动控件位置实现隐藏控件的
    也就是说,当页面切换到1的时候,它会自动把其它页面的控件移动到left=10000之类的位置,实现这些控件的隐藏
    MSFGsjbc.Move 这样的代码很有可能把本该隐藏的控件显示出来
      

  13.   

    楼上正解!
    sstab控件容易给人一种误解,好像它的每一个tab都是一个独立的容器,其实,一个sstab控件只有一个容器,你放在sstab里的所有控件就都放在这唯一一个容器里,它只是在我们选择某个tab的时候,自动把“其他”tab里的控件移到不可见的地方而已,而楼主的那几个move,把它们又给移回来了,当然就重叠在一起了。
    我原来也遇到过这个问题,而且也很长时间迷惑不解,查了很多资料才知道这个秘密。
    知道了原因,如何解决就太简单了。
      

  14.   

    15楼的解释经实验完全正确,所以楼主的那些Move产生了问题.
    经此又对sstab控件的使用加深一步.
      

  15.   

    而且对于SSTAB控件里的页如果包含ComboBox的话,会显示不正常,因为ComboBox的高度数据只读,6的楼我也试验了一下,一样不行。
      

  16.   


    ComboBox 不用去改变高度 只要 改变宽度就可以了 如果ComboBox要改高度 请改字体 大小