VB备忘录(8) 窗体

前端之家收集整理的这篇文章主要介绍了VB备忘录(8) 窗体前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

窗体类型

1、模式窗体与无模式窗体

模式窗体(Style: vbmode),强制获得焦点,并使其它窗体处于“静止”(代码暂停执行),只有模式窗体隐藏或卸载后其它窗体才能缓过气来

2、SDI与MDI

MDI父窗体是其它子窗体的容器



添加窗体

工程中添加一个新的窗体

工程中添加一个已经在其它工程中现存的窗体(若与当前同名,将会提示



删除窗体

1、先从工程中右击进行“移除”(只是不在工程中,但仍在在工程文件夹中)

2、再从工程文件夹中进行手动删除



窗体样式

仅vbfixedsingle和VBSizable会在任务栏上有图标

BorderStyle只能在设计中设置,不能在代码中设置



窗体图标Icon

属性中设置图标

代码中设置: me.icon=LoadPicture(App.Path & “\33.ico”)


窗体的背景图片

属性中设置

代码中设置: object.Picture=LoadPicture(.....)

用剪贴板:vbCFBitmap,vbCFMetafile,vbCFDIB来设置图片格式

me.Picture=Clipboard.GetData(vbCFBitpmap) ' 从剪贴板中取得图片

     SavePicture me.Picture,App.Path & "\sd.bmp" '将对象中的图片保存下来


Load 将窗体载入内存(并不显示

Show 显示窗体,若没载入,会隐形进行载入内存再显示

Hide 隐藏窗体,若未载入,会隐形进行载入内存但不显示

UnLoad 卸载窗体,只是从内存中删除显示部分,代码部分仍在内存中。



Print与FormPrint

前者是在窗体上显示字符等

后者是把窗体上所有东西看作图片发送给打印机,进行打印



MDI窗体

一个工程只能有一个MDI,SDI设置为MDIChildren为真时,就是子窗体。

子窗体如何显示?由MDI控制,其AutoShowChildren设置为真时,表示只要子窗体加载在内存中就可以显示出来,否则不显示

因此,为真时,子窗体的load与Show功能就相同了。(注意,为真不是运行MDI就显示Child,须在子窗体做加载时才显示

MDI有菜单,子窗体也可以有菜单,当打开子窗体时,父窗体的菜单 就被子窗体的菜单替换。一旦关闭子窗体,父窗体的菜单又会回归出来。

MDI窗体上只能放置具有Alignment属性的控件(图片框,工具栏,任务栏等)和具有不可见的控件(计时器、通用对话框等)

其它的文本框、按钮等不能放置。 要放的话,可先在MDI中放图片框,其它控件可放在其中。

同样MDI不能用Print方法

MDI好像是生成了很多子窗体,这些子窗体可以样式各异。

实际上,子窗体并不能用代码来控制,即只能在设计中把样式设计好。运行时,再调用。相当于起到模板作用。这个意义上子窗体好像是万物主,而不是父窗体。

从前面的作用看来,父窗体类似中国式父母,他们为子窗体打好基础,撑好伞,实际起作用的还是子窗体。

所以子窗体的模板很重要,可以由它生成很多的子窗体。格式如下:

dim frmVar as New frmChild ' 由子窗体模板frmChild生成一个新窗体frmVar

frmVar.Show ' 显示生成的新窗体frmVar

下面是一个由菜单“新建”(New)产生一个新的子窗体的情况:

Private Sub New_Click()
    Dim frm As New Form1
    Static i As Integer
    i = i + 1
    frm.Caption = "无标题" & i
    frm.Show
End Sub

注意,子窗体模板中的控件也会随之生成。一句话,设计中子窗体是什么样子,生成的新子窗体也是什么样子。

运行中若有多个子窗体,当前激活的子窗体可以用 MDIform.ActiveFom来指定这个子窗体。

猜你在找的VB相关文章