經(jīng)典案例利用VB.NET多窗體實(shí)現(xiàn)封面場(chǎng)所
對(duì)于VB.NET這門(mén)開(kāi)發(fā)語(yǔ)言我十分的喜歡,因?yàn)閹拙浯a就可以實(shí)現(xiàn)一個(gè)功能,運(yùn)用起來(lái)簡(jiǎn)單靈活,這里就給大家介紹一個(gè)關(guān)于VB.NET多窗體編程方法制作單獨(dú)程序封面。這里所謂的單獨(dú)封面,是只獨(dú)立應(yīng)用程序窗口本身的一個(gè)窗口,這個(gè)窗口在程序運(yùn)行時(shí)首先彈出屏幕,用于裝飾程序本身,或簡(jiǎn)單的演示一下程序的優(yōu)越性。這樣的封面在很多專(zhuān)業(yè)的WINDOWS程序中均存在,在VB中可有兩種簡(jiǎn)單的方法實(shí)現(xiàn)這一功能。此方法是通常采用的方法,即在程序中創(chuàng)建兩個(gè)或兩個(gè)以上的Form窗體,把其中的一個(gè)作為專(zhuān)門(mén)的程序封面制作場(chǎng)所,VB.NET多窗體具體方法:
1、創(chuàng)建一個(gè)新項(xiàng)目Form1,并在此窗體內(nèi)安放Command1命令按鈕,在Command1-Click()事件中輸入結(jié)束程序代碼“END”。
2、單擊菜單的“Insert"項(xiàng)目,加入一個(gè)新窗體Form1。
3、雙擊Form1窗體空白處,在Form1-Load()事件中輸入如下代碼,用于隱藏主窗體Form1,置第二窗體為***模式,并在運(yùn)行程序首先顯示和二窗體:
- Private Sub Form-Load () ’隱藏主窗口
- Form1.Visible = 0 ’窗口2***模式
- Form2.WindowState =2 ’顯示窗口2
- Form2.Show
- End Sub
4、 在窗體Form2中定義全程變量:
- Dim strr1 As String
- Dim i As Integer
5、在窗體Form2中放入一個(gè)時(shí)間控件Timer1。
6、在窗體Form2中的Form-Load ()事件中輸入以下代碼,用于在窗體2中顯示圖像,并置時(shí)間控件頻率:
- Private Sub Form-Load ()
- Form2.Picture = LoadPicture("c:\windows\setup.bmp")
- Timer1.Interval = 10
- i =0
- End Sub
7、在時(shí)間控件Timer1- Timer1()事件中進(jìn)行程序封面的制作工作,演示簡(jiǎn)單的動(dòng)畫(huà),并控制此動(dòng)畫(huà)運(yùn)行一段時(shí)間后自動(dòng)停止,關(guān)閉程序封面,返回程序主窗口;下面的代碼實(shí)現(xiàn)在一個(gè)圖片上隨機(jī)顯示字符串,顯示30次字符串后自動(dòng)退出。
- Private Sub Timer1-Timer ()
- Strr1 = "程序封面演示“
- With Form2
- .Font.Transparent =True ’透明顯示字符
- .Font.Size = Rnd *30+10 ’隨機(jī)變化字號(hào)
- .Font.Italic =True ’斜體有效
- .ForeColor=RGB(Rnd*256,Rnd*256,Rnd*256) ’隨機(jī)變化前景
- .FontName =Screen.Fonts (Rnd*7+14) ’隨機(jī)變化字體
- End With
- hh=Form2.TextHehght (strr1) ’取字符串高度
- ww= Form2.TextWidth (strr1) ’取字符串寬度
- x=Rnd * ( Form2.ScaleWidth-ww) ’隨機(jī)改變坐標(biāo)
- y=Rnd *( Form2.ScaleHeight-hh)
- Form2.Current X=x
- Form2.Current Y=y
- Form2.Print strr1 ’顯示字符
- ii = i +1 ’計(jì)數(shù)
- If i >30 Then
- Unload Me ’關(guān)閉封面
- Form1.Show ’調(diào)入主窗口
- Timer1.Enabled =False ’關(guān)閉時(shí)間控件
- End If
- End Sub
8、為了能夠人為地控制程序封面的停留時(shí)間,可在窗體Form2鼠標(biāo)單擊事件中安放退出封面代碼:
- Private Sub Form-Click ()
- Unload Me
- Form1.Show
- Timer1.Enabled =False ’關(guān)閉時(shí)間控件
- End If
- End Sub
#T#至此工作全部完成,當(dāng)運(yùn)行程序時(shí),首先彈出程序封面,封面上顯示一幅·BMP圖像,之后在此圖像上進(jìn)行隨機(jī)字符串的顯示,字符串的位置、字體、字號(hào)、前景色等值都是隨機(jī)變化的,顯示30次后自動(dòng)關(guān)閉封面返回主窗口,演示過(guò)程中用鼠標(biāo)單擊窗口也會(huì)返回主窗口,在主窗口中按下結(jié)束按鈕退出程序。具體操作時(shí)還有很多其它技巧,比如可以置第二個(gè)窗體為主窗體,這樣運(yùn)行時(shí)可自動(dòng)先彈出程序封面,可省略隱藏窗體和調(diào)入窗體的過(guò)程,另外第二窗體也可以在程序運(yùn)行時(shí)由代碼動(dòng)態(tài)生成,這樣編程時(shí)復(fù)雜一些,但有利于程序代碼的管理;程序封面的具體制作過(guò)程,有許多動(dòng)態(tài)圖像控制方法可以使用,只要靈活動(dòng)用VB.NET多窗體作圖方法,再加上一些必要的API函數(shù)的配合,會(huì)制作出理想的程序封面。