VB备忘录(8) 窗体

来源:互联网 发布:数据分析的例子 编辑:程序博客网 时间:2024/05/17 21:56

窗体类型

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.ShowEnd Sub

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

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







原创粉丝点击