大家在學(xué)習(xí)VB.NET的過程中,應(yīng)該會(huì)了解到這是一款用途廣泛,用法簡(jiǎn)單的編程語(yǔ)言。可以幫助開發(fā)人員輕松實(shí)現(xiàn)特定功能需求。窗體是Windows應(yīng)用程序的基礎(chǔ)。新一代的開發(fā)工具Visual Basic.Net為設(shè)計(jì)制作窗體提供了更多簡(jiǎn)單而豐富的方法,無需再求助于復(fù)雜而易錯(cuò)的API函數(shù),我們就可以輕松制作多種特效窗體:
VB.NET特殊窗體1 、輕松制作透明窗體
VB.NET可以輕松制作出任一透明度的窗體:我們只要在窗體的“屬性”窗口中,將 Opacity 屬性設(shè)置為一個(gè)介于 0.0(完全透明)與 1.0(完全不透明)之間的值就可以了:
VB.NET特殊窗體2、輕松制作始終位于最上層的窗體
在VB6中,要制作一個(gè)始終位于最上層的窗體我們只能求助于令人頭痛的API函數(shù)。然而在 .NET 中,我們只要簡(jiǎn)單設(shè)置窗體的 TopMost 屬性就可實(shí)現(xiàn)同樣效果了!例如:
- Dim frm As frmTopMost =
New frmTopMost()- frm.TopMost = True
- frm.Show()
VB.NET特殊窗體3、輕松制作不可見的窗體
如果要編寫一個(gè)不讓別人發(fā)現(xiàn)的隱藏程序,制作不可見的窗體就是必須實(shí)現(xiàn)的第一步。窗體的可見性通常由 Visible 屬性控制。但是,如果希望 Windows 應(yīng)用程序的主窗體在應(yīng)用程序啟動(dòng)時(shí)不可見,您將會(huì)發(fā)現(xiàn)將它的 Visible 屬性設(shè)置為 False 的方法無效,窗體總會(huì)自己顯示出來(這是因?yàn)椋瑔?dòng)窗體的生存期決定了應(yīng)用程序的生存期)。雖然如此,我們還是可以通過簡(jiǎn)單將應(yīng)用程序的啟動(dòng)設(shè)置為一個(gè)模塊,從而從窗體的生存期分出應(yīng)用程序的生存期,輕松實(shí)現(xiàn)不可見的窗體。在下面這個(gè)例子中,窗體在特定的時(shí)間內(nèi)自動(dòng)隱藏:
(1)在 Visual Basic 中,右擊項(xiàng)目并選擇“添加模塊”以將模塊添加到 Windows 應(yīng)用程序。
(2)在已添加的模塊(或類)內(nèi),創(chuàng)建可作為項(xiàng)目啟動(dòng)對(duì)象的 Main 函數(shù):
- Sub main()
- Dim f1 As New Form1()
- f1.Visible = False
- While Hour(Date.Now) < 15
- ‘如果當(dāng)前時(shí)間早于15點(diǎn),
窗體自動(dòng)隱藏- Application.DoEvents()
- End While
- f1.ShowDialog()
- End Sub
VB.NET特殊窗體4、輕松編寫托盤程序
托盤程序作為一類特殊的窗體,其快捷圖標(biāo)顯示在系統(tǒng)托盤中,窗體本身則隱藏不可見。在.NET之前版本的VB中編寫托盤程序是十分困難的,但是VB.NET提供的新的NotifyIcon組件卻使VB初學(xué)者也能輕松編寫一個(gè)這樣的程序:
新建“Windows應(yīng)用程序”,設(shè)置主窗體Opacity屬性為0,F(xiàn)ormBorderStyle屬性為None,ShowInTaskbar屬性為False,這樣窗體將在啟動(dòng)后隱藏。在窗體上放置一個(gè)NotifyIcon組件NotifyIcon1,一個(gè)ContextMenu(彈出菜單)組件ContextMenu1,并根據(jù)需要為ContextMenu1添加菜單項(xiàng)。
設(shè)置NotifyIcon1的ICON屬性,這個(gè)圖標(biāo)就是應(yīng)用程序出現(xiàn)在系統(tǒng)托盤中的快捷圖標(biāo);設(shè)置NotifyIcon1的Text屬性為“VB.NET托盤程序”,這就是鼠標(biāo)移動(dòng)到托盤圖標(biāo)時(shí)彈出的文字說明;設(shè)置NotifyIcon1的ContextMenu屬性為ContextMenu1,也就是右鍵單擊快捷圖標(biāo)時(shí)的彈出菜單為ContextMenu1。OK,按F5運(yùn)行!
幾乎不用編寫代碼,一個(gè)托盤程序就這樣輕松實(shí)現(xiàn)了。
聯(lián)系客服