首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

请问自制sstab控件的思路

2012-01-31 
请教自制sstab控件的思路请教自制sstab控件的思路,怎样让不同的控件显示在不同的页面上?[解决办法]控件数

请教自制sstab控件的思路
请教自制sstab控件的思路,怎样让不同的控件显示在不同的页面上?

[解决办法]
控件数组的方法简单点,用select判断不同的页面index值,动态生成不同的控件到窗体,用load 控件的方法


[解决办法]
一、在usercontrol中根据TabCount动态加载PictureBox,动态加载方法为Usercontrol.Controls.Add。
二、子类化Usercontrol,判断设计时子控件拖放事件,并设置子控件的Container为当前PictureBox。
三、运行时,隐藏不属于当前TabIndex的PictureBox,显示属性当前TabIndex的PictureBox。
为了方便代码编写,建议使用THUNK技术将子类化过程写到Usercontrol模块里。
[解决办法]
关键是,你要设置多个"容器",并配合TAB页的切换而显示不同的容器.

容器里面就放入不同的目标控件.
[解决办法]

探讨
引用:关键是,你要设置多个"容器",并配合TAB页的切换而显示不同的容器. 容器里面就放入不同的目标控件.

是的,关键问题是在这里,上面的例子中,我用sstab来替换江南春说的多个picturebox,这个是合理的
用sstab的dblclick来替换他说的子类化获取事件,这个也是合理的
如果我们在一个activex内部设置多个不同的“容器”,那方法也就是这些
以上工作做好了以后,我们往这个ActiveX中拉了一个控件,那么,怎么才能把这个东西“放”到“容器(江南春说的picturebox,例子里说的sstab)”上面去?

[解决办法]
探讨
Set ctl.Container=Usercontrol.PictureBox(TabIndex)


问题的问题是,这一句是会导致错误的,我的例子说的就是这个错误的问题

[解决办法]
探讨
引用:用API函数SetParent代替上述句子。

不说有的控件并未提供hwnd不说,就算有hwnd,虽然这个函数会执行成功,但是实际操作并未成功,也就是说控件并没有发生Container的变化(变化是有变化,只是不知道变成什么了)

我想这种操作应该是被禁止的,所以我认为,MS做sstab肯定用的另外的方法

热点排行