窗体Form对象

来源:互联网 发布:ddos攻击器源码 编辑:程序博客网 时间:2024/06/08 13:52
★ print方法是在窗体上显示输出,可输出文本,数值,属性,变量等(输出多项用分号或逗号隔开)。 例:
Private Sub Command1_Click()
Dim d
For d = 1 To 10
FontSize = 10 + d
Print "hello,world"; d
Next d
end sub
★ VB中如何实现满屏显示?(如游戏启动时的黑暗清屏效果):
1.设置FORM窗体的windowstate属性为2--最大化。
2.设置FORM窗体的borderstyle属性为0--无标题栏(注:这项设置只能在属性窗口中设置,代码中设置无效。)
这样就可以满屏显示了,如果要象游戏那样的黑屏,还要设置FORM窗体的backcolor属性为黑色(在属性窗口中选,如果在代码中写,为RGB(0,0,0)。)
★ 在一个窗体模块内部,本窗体名称可用Me代替,如在form_load事件中确定form的标题名称,可用Me.caption="关于制记事本";另外,在代码中获得工程名称的关键字是 App.Title,如:Me.caption=App.Title
★ 窗体的popupmenu方法:显示弹出式菜单。格式:
窗体名.popupmenu 弹出式菜单名
注:弹出式菜单名所指菜单必须含有至少一个子菜单。
★ FORM窗体的maxbutton属性:'最大化'按纽是否有效。
minbutton属性:'最小化'按纽是否有效。
★ FORM的controlbox属性:是否在窗体上显示系统菜单和最大最小关闭纽。
★ FORM的borderstyle属性:为0:无标题栏;为1:无最大最小化纽,且大小不可变;为2:缺省;为3:无最大最小化纽,且大小不可变;为4:标题栏缩小,且大小不可变;为5:标题栏缩小,可变大小。
★ form窗体MDIchild属性,窗体是否设置为MDI窗体的子窗体。
★ 创建多文档界面:在一个窗体中包含许多其他的子窗体,象WINDOWS,VB等本身就如此。多个子窗体都嵌入到一个叫MDI的父窗体里,每个MDI应用程序只有一个父窗体,在"工程"菜单中选"添加MDI窗体"(因每个程序中只能有一个父窗体,因此添加一个MDI窗体后该菜单项自动失效),然后将普通窗体FORM1,FORM2等的MDIchild属性设为true,它们就成了子窗体,加载时会在MDI窗体内部出现,当然首先要进行加载,程序启动时只会自动加载一个FORM1窗体,因此要在"工程"菜单"工程1属性"对话框中将"启动对象"改为"MDIform1"(父窗体),并在MDIform1_load()事件中将子窗体加载,如:
Private Sub MDIForm_Load()
Load Form1 (这里MDIform窗体的AutoShowChildren属性为True,
Load Form2 故不用再写form.show也会显示出两个窗体。)
End Sub
★ 创建窗体FORM数组:例如在标准模块中写:public lxn(10) as new form1,这样就以form1为样本建立了一个窗体数组,含11个元素,只要用lxn(1),lxn(2)...来表明即可,如写Load lxn(5)便可加载一个进内存来。
★ 在一个MDI窗口中如何布置多个子窗体的有序摆放?用MDIform1的arrange方法,格式:
MDIform1.arrange 0或1或2 例:MDIform1.arrange 2
其中,0表示层叠其中的子窗体;1表示水平平铺其中的子窗体(把MDIform1分成如"目"字形);2表示垂直平铺其中的子窗体(看起来象"皿"形)。
★ 如何设置程序的图标?在属性窗口中确定启动窗体的Icon属性,选一个能反映程序内容的合适图标,加入窗体标题栏左上角就可以了。生成exe文件时也就会沿用此图标。注意:不能在代码中设置窗体的icon属性,只能在属性窗口。否则图标不会变成程序的一个固有部分。
与此相关的还有生成exe文件的版本,工程描述,标题,类型(如公司名,产品名,版权等)设置,可在"工程"菜单中"工程1属性"菜单项的"通用"和"生成"选项卡中进行设置。
★ MDI窗体程序点滴:1,父窗体的AutoShowChildren属性:运行时是否自动显示内存中已加载的子窗体(即只用了load而未用show)。 2,子窗体如果有菜单,运行时不显示在子窗体本身上,运行中当它成为活动窗体时,菜单将显示在MDI窗体上(MDI窗体本身的菜单将隐藏)。3,启动窗体为子窗体时,会自动加载它的MDI窗体,而启动窗体如果为MDI窗体,启动时不会自动加载其子窗体。
★ 窗体对象的scalemode属性:选择窗体内部坐标系统的度量单位,有7种选项:1为twip:缇;1英寸=1440缇。2为point:点;1英寸=72点;3为pixel:象素;4为字符(1字符等于1/6英寸高,1/12英寸宽);5为英寸;6为mm;毫米,1英寸=25毫米;7为cm厘米,1英寸=2.5厘米。另外,还有0用户自定义单位。
还可以在代码中自定义度量单位的大小(自定义坐标系统),用scale方法:
容器对象名.scale(自定左上角x1,y1)-(自定右下角x2,y2)
picture1.scale(50,50)-(150,150)
说明:用了这一句后,在该容器对象内部,度量坐标发生改变:横轴范围从x1到x2,
纵轴范围从y1到y2.也就是将现有容器宽分成(x2-x1)份,其值作为容器scalewidth属性值,每1份作为横向度量单位;将现有容器高分成(y2-y1)份,值为其scaleheight属性值,每1份作为纵向度量单位。注:1,如果容器的大小以后被调整,这些单位大小不变。2,容器左上角坐标(内部"原点"坐标)是(x1,y1),如上例为(50,50),而不是(0,0)。它标明在容器的scaleleft和scaletop属性中。3,容器中每点的坐标总在(x1,y1)到(x2,y2)之间.
★ Form窗体的ShowInTaskbar属性:程序运行时是否在任务栏上显示。
★ Form窗体的borderstyle属性设置为1,3或4时其大小运行时不可变。
★ moveable属性:设置运行时窗体是否可移动。
★ VB程序的界面样式除MDI多文档和SDI单文档样式,还有一种叫"资源管理器"样式的界面。
★ 在一个窗体卸载关闭时,我们知道会发生Unload事件,事实上,在Unload事件发生前,另一个重要事件会发生,即Form_QueryUnload事件,在此事件中,为用户提供停止卸载继续工作的机会,如下:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

End Sub
其中有两个参数:cancel:若设此参数为True,可阻止unload事件发生。
unloadmode:返回引起窗体卸载关闭的原因:0为使用标题栏"关闭"("关闭"纽或标题栏的系统菜单栏),1为代码中用unload me语句,2为Windows环境会话结束;3为Windows任务管理器关闭程序;4为MDI子窗体关闭。
在窗体的存在周期中,发生的窗体事件依次为:Form_initialize->Form_Load->form_Resize->form_Activate->Form_GotFocus->Form_Paint->Form_QueryUnload->Form_Unload->Form_Terminate.
★ 我们经常用unload me来关闭一个窗体,但此命令并不能将一个窗体从内存中完全清除,要想完全移走窗体,应将窗体设置为nothing,即在form_unload事件中写:set form1=nothing
★ Form窗体或picture对象的paint事件:对象因移动或放大,或被覆盖重新显示而需要重画的时候,就会引发paint事件,在各种图形方法的输出过程中,paint事件很有用。一个"水平平铺"画面的例子:
Private Sub Form_Load()
Image1.Picture = LoadPicture("c:\我的文档\my webs\红楼梦1.bmp")
End Sub
Private Sub Form_Paint()
For x = 0 To Form1.Width Step Image1.Width
For y = 0 To Form1.Height Step Image1.Height
PaintPicture Image1, x, y 在Form窗体内画多个(平铺)image1的图象
Next y
Next x
End Sub
上面paintpicture方法是画图,以前讲的时候好多参数,此例是最简化的情况了。都用缺省值,写出来是:form1.paintpicture image1.picture, x,y, image1.width,image1.height,0,0,image1.width,image1.height,vbSrcCopy
添加窗体:"工程"菜单"添加窗体"菜单项。
窗体间能自由切换的是"非模态窗体",一个窗体在屏幕上显示后,用户必须做出响应的是"模态窗体",否则它就一直得到输入焦点。
在代码中将新窗体装入内存的格式: LOAD 窗体名称
从内存中卸载窗体的格式: UNLOAD 窗体名称
显示已装入的窗体的格式: 窗体名称. SHOW 0或1(0为非模态形式,1为模态形式)
隐藏已装入的窗体的格式: 窗体名称. Hide
窗体FORM对象的windowstate属性:选定窗体启动时的大小(0为正常,1为最小化,2为最大化
几行简例: Load Form2
Form2.Label1.Caption = "abcde"
Form2.Show
★ 在MDI窗体中只能包含菜单和pictrue控件,如果要放置其他控件,就将它们放在picture里面好了。
★ MDI窗体的属性方法和事件:ActiveControl属性:返回当前拥有焦点的控件。ActiveForm属性:返回当前活动子窗体。因此可用ActiveForm.ActiveControl来引用当前活动子窗体上的具有焦点的控件,比如在MDI窗体的菜单"复制"命令中,复制正在使用的某个子窗体上文本框中的文本:clipboard.settext activeform.activecontrol.seltext