我也用过,改用其它的容器控件,不用frame就可以了.

解决方案 »

  1.   

    不好意思啊!这问题我不懂,帮你UP了!!
    ================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]
      

  2.   

    这是activeskin的一个弊病,你如果使用label的话,就使用activeskin自带的skinlabel好了。
      

  3.   

    问题出在SkinClientArea属性上,=true的话就是这个问题,=false窗体很难看。
      

  4.   

    几百个LABEL,可以一次性转化为SKINLABEL吗??
      

  5.   

    faint。
    你的label需要操作不??如果程序中没有操作它们,转换就很简单了。
      

  6.   

    你把需要操作的label手动修改掉,其他不需要操作的名字、属性等也无所谓的话,你在加载窗体的时候覆盖掉吧。
    其实我这个方法也很笨,希望对你有用处。
    首先,放置一个skinlabel控件,index=0。Private Sub Form_Load()Dim ct As Control
    For Each ct In Controls
       If TypeName(ct) = "Label" Then
          '选择性的覆盖。
          CtChange ct
       End If
    Next ct'apply一定放到最后。
    Skin1.ApplySkin Me.hWnd
    End Sub
    Private Sub CtChange(OldLabel As Control)
    '   Dim NewLabel As Control
       Dim Str As String '名字
       Dim iWidth As Double, iHeight As Double, iLeft As Double, iTop As Double '长宽
       Dim strCap As String '内容
       iWidth = OldLabel.Width
       iHeight = OldLabel.Height
       iLeft = OldLabel.Left
       iTop = OldLabel.Top
       Str = OldLabel.Name
       strCap = OldLabel.Caption
       
       '此处可以进行控件的删除添加等操作。
       
       Load LabSkn(LabSkn.Count) 'labskn,你放置的一个index=0 的skinlabel。
       
       With LabSkn(LabSkn.Count - 1)
          .Caption = "S" & strCap
          .Left = iLeft
          .Top = iTop
          .Width = iWidth
          .Height = iHeight
          .Visible = True
          
       End With
       
    End Sub
      

  7.   

    谢谢,coolsky(天心)。不过如果真要这样的话我还不如花上个把小时一个个换掉LABEL,