我想在ACCESS里实现一个上面这样的界面,观察了一番,决定用splitter, tab来完成。具体地说,就是用splitter把窗体分成3个窗格:上窗格、左窗格、右窗格;然后在每个窗格里放tab;然后在上窗格的tab里放listview,在左窗格的tab里放treeview,在右窗格的tab里放subform。
大体思路定了之后,就开始找控件。先找splitter。我在论坛上发帖问,有的朋友推荐component one的c1sizer,我试了,在ACCESS里不能正常工作;然后找到了FMS的splitter,它这个是专为ACCESS开发的,还可以用。就决定用它了。
然后找tab。tab控件的可选范围比较大。一种是可以直接在属性页里放控件的,比如微软的sstab,DB1的CTFOLD,还有ACCESS的标准选项卡控件,这种控件的问题在于不能和splitter很好的合作,如果属性页里放的有activex控件,那splitter移动的时候,选项卡的大小会变化,但是它里面盛的activex控件的大小却不会变化,所以选项卡最小只能变到正好把它盛的控件包住。我试过在onsplit事件里写代码改里面的控件的大小,虽然也可以勉强行,但是由于splitter事先设定选项卡最小只能改到它包容的控件那么大,所以不能很顺畅地移动splitter,只能一次移动一点点(就是从选项卡的边到它包容的控件的边那么点距离),用着不怎么爽。所以就放弃了这种tab。
再一种tab,是自己不带container的,自己要写把控件放到它的客户区域的代码,以及切换各控件显示的代码。有微软的tabstrip,还有FMS的tab,还有DB1的cttab。经过试验发现,在缩放的过程中,FMS的