网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Visual Basic
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.使用VB设计具有「动感」的命令图.
.FileSystemObject读写文件.
.VisualBasic6.0FAQ.
.用VB开发CAI软件的小经验.
.用VB6读写数据库中的图片.
.用VB6的双通道技术获得影碟片断.
.使用ADD-IN技术加强VisualBasic开.
.函数名巧做局部变量.
.用VB计算1 1=2.
.在VB6.0中实现动态统计报表.
.VB对低层硬件访问控制.
.VB调用IMAGE控件实现图像缩放的一.
.VB图片框在报表设计中屏幕滚动的.
.VB5.0中基于桌面的屏幕技巧.
.用SendMessage实现剪贴板操作.
.在程序中打开Internet拨号连接窗.
.用VB实现鼠标的隐藏.
.VB游戏写作技巧(2)网络篇.
.记录集锁定--多客户环境下VB数据.
.为VB5辩解:VB处理数据库时求数据.

VB中实现同一窗口的多个实例及控件的动态增减

发表日期:2006-2-27


----在我编制的一个控制系统中,需要对不同模块的不同状态设置相应参数.由于设置的参数名称都一样,只是具体内容不同,我不再象往常一样创建不同的窗口,摆放相同的部件,编制几乎相同的代码,而使用了窗体实例.其实现过程大致如下:

新建一个Form(我使用的是MDIForm,用一般的form也一样,我试过),取名为form1,再建一个窗口取名为form2;

为form1建立菜单项(使用按钮也行):
菜单项:OpenWindow,
子菜单项:open1、open2、open3,子菜单项设为控件数组,名称取为mnuOpen,索引分别为0、1、2;

为菜单mnuOpen编写代码:
PrivateSubmnuOpen_Click(IndexAsInteger)
DimmyFormAsForm'定义变量
ForEachmyFormInForms'使用Forms集合
IfmyForm.Caption="Window"&CStr(Index 1)Then
'通过查看窗口标题检查该窗口实例是否已打开
myform.windowstate=0'照原来的尺寸大小和位置打开
myForm.SetFocus'如果已打开,则使其获得焦点
SetmyForm=Nothing'释放资源
ExitSub'跳出过程
EndIf
Next
SetmyForm=NewForm2'创建Form2的窗体实例
LoadmyForm
myForm.Caption="Window"&CStr(Index 1)
'设置其Caption属性,也可作其他操作
myForm.Show
SetmyForm=Nothing
EndSub


----在我的控制系统中,也用到了控件的动态增减,下面谈谈实现方法.
----假设根据一TextBox(名称为Text1)的内容来决定某Label[名称为Label1(0),定为控件数组,索引值Index为0]控件的数目.在Form中放置一个TextBox控件和一个Label控件,取名如前所述;再放置一个命令按钮Command1.在Command1中编程:

PrivateSubCommand1_Click()
IfIsNumeric(Text1.Text)=FalseThenExitSub
'如果Text1中内容不是数字则退出过程
DimiCountAsInteger,iAsInteger
'iCount为设定的个数,i为计数器
DimiIndexAsInteger
'iIndex为实际个数
iCount=CInt(Text1.Text)
IfiCount>0AndiCount<10Then
'假定最多只能放10个Label1
iIndex=Label1.Count'当前Label1的个数
IfiCount>iIndexThen
'设定值大于实际值则增加相应数目的控件
Fori=iIndexToiCount-1
LoadLabel1(i)
WithLabel1(i)
.Left=Label1(0).Left
.Top=Label1(i-1).Top 350
.Visible=True
EndWith
Nexti
ElseIfiCount<iIndexThen
'设定值小于实际值则删除多余的控件
Fori=iCountToiIndex-1
UnloadLabel1(i)
Nexti
EndIf
EndIf
EndSub
----上面的代码在VB5.0和VB6.0中运行通过.->

上一篇:强制和防止窗口重画 人气:3124
下一篇:VB中实现带预览的对话框 人气:3129
浏览全部Visual Basic的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐