VB的MDI表单只允许放置picturebox、childform等控件。有没有办法判断自定义控件放置的窗口的类,如果不符合环境要求就终止控件的初始化事件,从而防止用户将自定控件放置到不符合要求的容器控件内?
麻烦大家帮助一下。
麻烦大家帮助一下。
解决方案 »
- 自写控件时panel怎么传值
- 简单的ListView vb6.0
- 在vb中如何向sqlserver添加图片
- 有兴趣帮忙的请进来!
- 请推荐一本学习VB语言的好书!
- 各位高手,請問一個關於msmq消息隊列的問題
- 如何屏蔽richtextbox的系统热键!(外带鼠标选定文本操作)
- imagelist如何初始化?
- 有没有能根据xml数据源生成分析图形的?
- 我用VB开发了一个客户端的数据库程序,通过ODBC向服务器数据库中录入数据。现在我在另外一个域的工作站上想运行我的程序,ODBC都测试成功了,但是却登录不上(两个服务器已经建立了信任关系),出错的提示信息是:
- 刚做了个站.散分.........帮个忙顶一下
- 关于定义变量类型的问题
If TypeOf UserControl.Parent Is MDIForm Then
Err.Raise 429, , "不能用在 MDIForm 中。"
End If
End SubPrivate Sub UserControl_InitProperties()
CheckParent
End SubPrivate Sub UserControl_ReadProperties(PropBag As PropertyBag)
CheckParent
End Sub
另外,基于上述原因,tiger_zhao提供的代码是否能终止加载未能测试,但是从代码上看好象没有终止初始的功能。我想今后也许会遇到同样的问题,还请一并解决一下。
这里先谢过了。
If (Not (TypeOf UserControl.Extender.Container Is Form)) And _
(Not (TypeOf UserControl.Extender.Container Is MDIForm)) Then
Err.Raise 429, , "必须直接放在 Form 或 MDIForm 上。"
End If
End SubPrivate Sub UserControl_InitProperties()
CheckContainer
End SubPrivate Sub UserControl_ReadProperties(PropBag As PropertyBag)
CheckContainer
End Sub
抛出错误就会终止控件的创建。
UserControl_InitProperties 用来阻止设计模式下的添加控件,UserControl_ReadProperties 用来阻止设计模式下的剪贴复制。
如果有和我一样仍在使用VB6的还有好的解决办法,请告知一下。另外,还是非常感谢Tiger_zhao的热心回答,请稍等两天。如果您在艺术字的制作上有研究,欢迎您解答我在API分类内的问题,分数我一定会考虑的。
注意 extender 不是在所有事件中都有效。
感谢您的回答。是的,extender不是在所有事件中都有效,在控件初始事件中就行不通,msdn中也是这样介绍的。但是,我也是放在您所说的两个事件中就是找不到这个对象——不去考虑啦。
这20分铁定是您的啦。
另外,请教一下,控件中如果有2个以上属性页,怎样才能避免属性调用其中一个时点击“应用”后所有属性页都显示。有人说是我在propertypages里添加了所有的属性页的缘故。但是不全部添加如何与控件关联啊。
如果您能解决这个问题,我再加100分一并结帖。
当然也欢迎其他朋友帮助解答。
在 UserControl 的代码中,光标定位在属性上,菜单“Tools\Procedure Attibutes”,在展开“Advanced >>” 后,中间的 Combo 选对应的属性页,确定。这样你在窗体设计时选中控件,F4 打开属性窗口(不是 Property Pages 对话框),焦点定位到该属性时,编辑框右边就有一个小按钮,点击后打开的 Property Pages 对话框中就始终只有关联的一页。
如果有两个属性页,分别关联到两个属性,如果是通过属性窗口的小按钮后打开的 Property Pages 对话框只显示一页,修改后点击应用也一样。
随便建个控件,添加一个a属性,两个属性页。
在控件的propertypages属性中把两个属性页都选上,即把两个属性页与控件关联。
再把属性a与任何一个属性页关联上,方法用你说的就行。
别的都不用做了。
添加一个新工程,在表单内把控件加上,设属性a试试。就是这种现象啦。
随带说一下,我用的是vb6
重开 VB,新建工程做。
不好意思,还是没有未实现。您能不能做一个简单的例子(只要能正常显示属性页就行,不需要其它功能),发过来让我学习一下。
。
麻烦您啦。
试试其它的 VB 安装盘。