我在一个Form里面需要放多个控件,但是Form的高度有限制,form的高度只能比屏幕的高度大一点点,我想根据需要自定义高度的大小,可以达到两个屏幕甚至更高,有什么解决方法?
除了在程序里面修改height属性外,在设计阶段,怎么可以调整form的高度,来显示放在form下方的控件?

解决方案 »

  1.   

    错了,以为是.Net ,放个PictureBox来实现,
    然后在窗口上放滚动条控件,在Scroll事件中来动态控制PictureBox的top属性.不过好像VB中控件的高度类型是Single,所以说还是有限制的啊...用选项卡吧.
      

  2.   

    是的,VB中控件的高度有限制,大约height属性超过30000多就不行了。
    那我试试选项卡。
    谢谢各位。
      

  3.   

    将Picture2控件放置在Picture1控件内,其它控件放置在Picture2控件内,使用滚动条向上移动Picture2控件,Picture2控件内的控件随其在界面上移动。
    Private Sub Form_Activate()
        Me.WindowState = 2
        Picture1.Height = Form1.Height * 0.99
        Picture2.Height = Form1.Height * 2
        Picture1.Width = Me.Width * 0.99
        Picture2.Width = Me.Width * 0.99 - 375
        VScroll1.Left = Me.Width * 0.99 - 375
        VScroll1.Height = Me.Height * 0.95
        VScroll1.Width = 375
        Command1.Top = 2000
        Command2.Top = 13000
    End SubPrivate Sub VScroll1_Change()
        If Picture2.Top > -1 * Form1.Height Then
            Debug.Print Picture2.Top
            Picture2.Top = -0.5 * VScroll1
        End If
    End Sub但我觉得这会带来大量写孔件位置的代码,比较现实的方法,将各控件按功能分组分别放置于容器类控件内,通过控制容器类控件的可视力或不可视来达到目的。
      

  4.   

    你都用的是什么控件要放那么多呢?
    估计都是些TextBox吧,不然不会涉及到界面排版和这样向下排列
    如果是这样,你可以只用一个TextBox,其他的都用GDI画出来
    当点击到哪一格的时候,就将TextBox移动到那个格的位置上,
    把内容改成相关的内容,这样看上去就好像点到另外一格的TextBox上一样。
    比如Access2000的数据表编辑,或VB属性的修改,他不可能每个表格都放控件的
      

  5.   

    用TABSTRIP控件来分页显示.
    就好像你有10000块钱,也不必把100张一百快都摊开了拿吧,摞起来拿不是更好么
    界面也是如此,想想即使你有本事把所有控件都摊开在一个界面上,用户还不看得眼花死? 
      

  6.   

    直接在属性把height值改成你想要的值就是了啊 
      

  7.   

    用容器来解决+VScroll控件,看你自己的方便使用什么容器
      

  8.   

    放一个PICTURE,控件全部在上面,用滚动条来控制他的TOP和LEFT.
      

  9.   

    嗯,放picturebox挺好的啊!不会有那么多控件的内容,在一页都要显示出来吧? 呵呵! 能分页,还是分选项卡页吧! 毕竟不是网页:!)
      

  10.   

    谢谢各位。
    界面上主要是一些可以显示多行的textbox和三个显示image的区域,可以对内容进行修改保存。
    现在用一个画面,不用选项卡勉强显示的下,用户希望做成网页性质的,使用滚动条拖拉显示。