怎么自定义工具栏
发布时间:2010-05-24 21:50:27 文章来源:www.iduyao.cn 采编人员:星星草
如何自定义工具栏?
如何自定义工具栏?工具栏能对运行表单进行操作。即工具栏独立于表单(搁在表单外)又能对表单操作的按钮组合?
------解决方案--------------------
如何将工具栏建立在当前表单中
你是否一直在思考着要在自己制定的表单上方一个“工具栏”?那么你跟着我来吧,保证你收获不少。当然如果你有更好的使用经验可不要忘了告诉我!
******************
首先当然是创建工具栏的可视类了,至于是怎么创建,好像很多的资料中有说明,我就省得长篇大论的说了。如果你确实不明白,那么可以参考我已经创建的工具栏可视类(ToolBar.Vcx)。创建完成了,可要记得你所自定义的工具栏的类名(像我的就是“MyToolBar”)哦,以下可是会要用到的!
指定工具栏类的“ShowWindow=1”(必须的,否则的话工具栏会停靠在VF的主窗口中)
还有,最重要的一点,你要在这个工具栏的可视类中添加一个新的用于保存父表单对象的属性(oMianform),通过该属性来引用父表单上所有一切。当然如果你的工具栏上的所有控件地方法并没有引用父表单的方法和属性,你大可不必创建该属性。不过这种情况应该很少吧!
在工具栏类的“Init”事件中写下如下代码:
——————————————————
Parameter oform
This.omainform=oform
——————————————————
******************
再来谈谈“表单”的问题:
要使表单能够放一个工具栏,该表单就必须具有“特殊”的属性(并不是任何一个简单的表单都可以放置工具栏),该表单必须具备该属性:ShowWindow=2(也就是该表单为顶层表单)
******************
再接下了,就是最重要的调用环节了。
如果你在进行表单设计时,想通过添加其它的的可视类的方法往表单中添加你所自定义工具栏类,那么VF就会提示你是否在当前的表单中是否再添加一个新的表单(也就是将当前的表单对象变为一个表单集的成员),我劝你不要这么做了,因为这根本就行不通,且不说不好控制,关键是你所定义的工具栏不会停放在你所指定的表单中(它如果“Dock”的话,会停放到VF的主窗口中)。怎么解决了,用如下的办法吧:
1、在你的表单中增加一个新的属性(oToolbar),该属性主要用于存储工具栏对象;
2、在表单的“Activate”事件中添加如下的代码:
——————————————————
showtoolbar=Vartype(Thisform.otoolbar)
If showtoolbar# "O " And showtoolbar# "X " &&判断工具栏对象是否创建并且不是被释放了
Set Classlib To Toolbar Additive &&这里的“Toolbar”是存放工具栏可视类的类库文件名
This.otoolbar=Createobject( "MyToolBar ",This) &&这里的“MyToolBar”是你定义的工具栏类名
This.otoolbar.Show &&显示工具栏
This.otoolbar.Dock(0) &&将工具栏停放至窗口的顶端
Release Classlib Toolbar &&释放类库文件
Endif
——————————————————
好了,至此基本的已说完了,运行你的表单吧!来看看自己的成果。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
菜鸟求一句命令
我做VC的,没做过VFP,完全不懂,帮人问一句命令,谢谢各位大牛们帮忙。
“我有两张表,称为A表,B表,其中B表数据很多,我现在...
-
求助:实现grid修改后直接后直接更新到数据表里
各位道友,小弟有两个问题
1。如何实现在grid表格里直接修改数据;
2。修改的数据可直...
-
请问treeview 里面如何选择性展开其中某树枝及其获得焦点?
请问如何在treeview里面,如何实现选择性展开其中的某枝,原本是全部收起来...
-
vfp中treeview控件的用法
我在VFP中使用了treeview控件,我对treeview中的某一个节点的文本修改了,怎么在treeview窗口中进行就更。
...
-
求编排考号问题
需求是这样的,如1年级有8个班,那么考号编排规则是:第1个班的第一个学生考号为1号,第2个班的第一个学生考号为2号,以此...
-
大家讨论,对现有vfp6.0产品只升级为sql server数据库有必要吗?
功能保留原来 只是数据库变化
我本人觉得会丧失很多vfp 本身文...
-
表单中的出错,第一次遇到
VFP9.0中新建了一个表单
表单中,增加一个command1,使其width=25
然后,将此按钮,复制150个出来. (此时...
-
VFP 如何做一个类似word控件?
如题。
类似于电子病历的那种控件。可以像word一样的编辑文件、表格、图片等
可以直接取数据库的数...
-
vfp使用Msxml2.ServerXMLHTTP的乱码问题
oo = = newObject('Msxml2.ServerXMLHTTP')
oo.open('post','http://localhost/',.f.)
o...
-
表中定位 如下 记录 seek办不到
表结构
dlh fb
100 5
110 2
112 3
........
假如 我想查找 dl...