我急死了!!!
我用VB写控件,我在容器(Usercontrol对象)上放置了Tabbed Dialog(页框)控件,在页框上又放置了常用控件,为了让Tabbed和常用控件的大小能随控件的大小改变而改变,我需要写UserControl_Resize过程,部分代码如下:
Dim intMargin As Integer, intHeight As Integer, intWidth As Integer, intLeft As Integer, intTop As Integer
intMargin = UserControl.ScaleHeight / 125
intHeight = ScaleHeight / 25
intWidth = 1100 ' ScaleWidth / 10
'移动控件元素
'计算移动位置,及高度,宽度
intTop = intMargin: intLeft = ScaleWidth - 4 * intMargin - intWidth '承办人combo1
Combo1.Move intLeft, intTop, intWidth ', intHeight
intWidth = 690 'ScaleWidth * 0.067
intHeight = 210 'ScaleHeight * 0.028
intLeft = Combo1.Left - 2 * intMargin - intWidth
intTop = 2 * intMargin
Label1.Move intLeft, intTop, intWidth, intHeight
我能很好的控制容器(Usercontrol)上控件(如:Tabbed),但我不会控制Tabbed上的控件,因为我不了解是按照容器的坐标系来调整Tabbed上的控件还是按照Tabbed的坐标系来调整控件,我按照Tabbed的坐标系调整控件总是产生莫名其妙的后果(如,第一页的控件出现在第二页中),我详细研究过Tabbed上的控件的坐标,它们的坐标好像采用的是Tabbed的坐标系,按照容器的坐标系无法计算,调整它们的位置,
问题点数:20、回复次数:2Top
1 楼programart_life(理论派)回复于 2002-11-27 12:52:02 得分 20
我很久没有用到VB了,记得VB里有两个Tab形式的控件,一个是Tab,一个Page吧。
Tab只是提供了属性页形式的界面,但是页面之间的切换,仍需要用程序来控制,通常的做法是,在点击相应的页面时,才将相应的一组控件显示出来。而这组控件,人们通常将他们放在一个容器里(如Frame)。如果不对鼠标点击页面头进行编程,则所有的控件组不会自动分页。所以会出现第一页的控件,第二页也有的情况。另外对于这种Tab控件,好像有一个叫做ClientWidth和ClientHeight的属性,就是除去页头和边框之外的客户区大小。
Page控件已经整合了上面的功能,它能自动分页。但是占用的资源比Tab高了很多。
(如果上文有错,敬请原谅。很久没有用到VB了,凭记忆写的)Top
2 楼xudeli1979(阿基米德)回复于 2002-11-27 15:30:29 得分 0
谢谢:programart_life(理论派) 的回复(我给您5分),在VB中有两个Tab控件分别是SSTab(也许是您说的Page吧),和TabStrip,我的控件中用的是SSTab,但他们俩都没有ClientWidth和ClientHeight属性,我又作了测试,还是没成功!!唉!高手帮帮忙吗!!Top




