體是Windows應(yīng)用程序的基礎(chǔ) 新一代的開發(fā)工具Visual Basic Net為設(shè)計(jì)制作窗體提供了更多簡(jiǎn)單而豐富的方法 無需再求助于復(fù)雜而易錯(cuò)的API函數(shù) 我們就可以輕松制作多種特效窗體 輕松制作透明窗體VB NET可以輕松制作出任一透明度的窗體 我們只要在窗體的 屬性 窗口中 將 Opacity 屬性設(shè)置為一個(gè)介于 (完全透明)與 (完全不透明)之間的值就可以了 Dim frm As FrmTrans = New FrmTrans()frm Opacity = frm ShowDialog() 輕松制作始終位于最上層的窗體在VB 中 要制作一個(gè)始終位于最上層的窗體我們只能求助于令人頭痛的API函數(shù) 然而在 NET 中 我們只要簡(jiǎn)單設(shè)置窗體的 TopMost 屬性就可實(shí)現(xiàn)同樣效果了!例如 Dim frm As frmTopMost = New frmTopMost()frm TopMost = Truefrm Show() 輕松制作不可見的窗體如果要編寫一個(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)隱藏 ( )在 Visual Basic 中 右擊項(xiàng)目并選擇 添加模塊 以將模塊添加到 Windows 應(yīng)用程序 ( )在已添加的模塊(或類)內(nèi) 創(chuàng)建可作為項(xiàng)目啟動(dòng)對(duì)象的 Main 函數(shù) Sub main()Dim f As New Form ()f Visible = FalseWhile Hour(Date Now) 如果當(dāng)前時(shí)間早于 點(diǎn) 窗體自動(dòng)隱藏Application DoEvents()End Whilef ShowDialog()End Sub 輕松編寫托盤程序托盤程序作為一類特殊的窗體 其快捷圖標(biāo)顯示在系統(tǒng)托盤中 窗體本身則隱藏不可見 在 NET之前版本的VB中編寫托盤程序是十分困難的 但是VB NET提供的新的NotifyIcon組件卻使VB初學(xué)者也能輕松編寫一個(gè)這樣的程序 新建 Windows應(yīng)用程序 設(shè)置主窗體Opacity屬性為 FormBorderStyle屬性為None ShowInTaskbar屬性為False 這樣窗體將在啟動(dòng)后隱藏 在窗體上放置一個(gè)NotifyIcon組件NotifyIcon 一個(gè)ContextMenu(彈出菜單)組件ContextMenu 并根據(jù)需要為ContextMenu 添加菜單項(xiàng) 設(shè)置NotifyIcon 的ICON屬性 這個(gè)圖標(biāo)就是應(yīng)用程序出現(xiàn)在系統(tǒng)托盤中的快捷圖標(biāo) 設(shè)置NotifyIcon 的Text屬性為 VB NET托盤程序 這就是鼠標(biāo)移動(dòng)到托盤圖標(biāo)時(shí)彈出的文字說明 設(shè)置NotifyIcon 的ContextMenu屬性為ContextMenu 也就是右鍵單擊快捷圖標(biāo)時(shí)的彈出菜單為ContextMenu OK 按F 運(yùn)行!幾乎不用編寫代碼 一個(gè)托盤程序就這樣輕松實(shí)現(xiàn)了 lishixinzhi/Article/program/net/201311/13831
作為一家“創(chuàng)意+整合+營(yíng)銷”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們?cè)跇I(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)公司提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)站制作、創(chuàng)意表現(xiàn)、網(wǎng)頁(yè)制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營(yíng)銷運(yùn)營(yíng)等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營(yíng)模式與有效的網(wǎng)絡(luò)營(yíng)銷方法,創(chuàng)造更大的價(jià)值。
new
就是實(shí)例化,比如實(shí)例化一個(gè)類,你才能訪問,,
好比,你是張三,把你的地址告訴了我,我在能找到你家在哪,這個(gè)過程就可以稱為實(shí)例化。
使用New關(guān)鍵字建立一個(gè)新的對(duì)象和用它屬的類來定義是一樣的。New關(guān)鍵字可以被用作來建立一個(gè)窗體、類模塊以及集合的實(shí)例。用戶在設(shè)計(jì)的時(shí)候建立的每一個(gè)窗體都是一個(gè)類。New關(guān)鍵字能夠用來建立一個(gè)類的實(shí)例。
可以通過以下步驟來建立一個(gè)類的實(shí)例:
(1)在窗體上畫一個(gè)按鈕和幾個(gè)其他的控件。
(2)按鈕的Click事件過程加入以下代碼:
Dim
x
AS
New
Form1
x.Show
(3)運(yùn)行程序,并且點(diǎn)擊幾次按鈕,把最前面的窗體移開,因?yàn)榇绑w是一個(gè)有可視界面的類,此時(shí)可以看見有很多窗體的拷貝,每一個(gè)窗體具有相同的控件,并且出現(xiàn)在一個(gè)地方。
(4)將列代碼加到按鈕的click事件過程中:
Dim
f
As
Form1
f=New
Form1
f.text="hello"
f.Show
使用New關(guān)鍵字可以從類模塊中定義的類中建立一個(gè)新的集合和對(duì)象,要知道它們?cè)鯓庸ぷ?,可以參考下面的例子?/p>
(1)建立一個(gè)新的工程,并且在一個(gè)名為Form1的窗體上畫一個(gè)按鈕控件。
(2)在Project(項(xiàng)目)菜單下,選擇"Add
Class"給工程添加一個(gè)類
(3)把新的類命名為ShowMe.VB
(4)在該新類中加入如下代碼:
PUblic
Class
ShowMe
Sub
ShowFrm()
Dim
frmNew
As
Form1
frmNew=New
Form1
frmNew.Show()
frmNew.WindowState=1
End
Sub
End
Class
(5)在Button1_click事件的過程中加入如下代碼:Protected
Sub
Button1_Click(Byval
sender
As
System.Object,_
Byval
AS
System.EventArgs)
Dim
clsNew
As
New
ShowMe()
clsNew.ShowFrm()End
Sub
運(yùn)行程序,并且點(diǎn)擊幾次按鈕,將看見每創(chuàng)建一個(gè)ShowMe類的新的實(shí)例時(shí),在桌面上有一個(gè)最小化的窗體的圖標(biāo)。
New關(guān)鍵字只能用來建立一個(gè)類的對(duì)象,不能建立一個(gè)基于基本的數(shù)據(jù)類型的對(duì)象,例如Integer。而且,不能建立一個(gè)基于一個(gè)具體對(duì)象的對(duì)象。例如,下面的代碼根據(jù)一個(gè)名為SomeClass的類,建立了一個(gè)名為Objx的對(duì)象,面后又錯(cuò)誤地企圖根據(jù)對(duì)象Objx再建立一個(gè)其他的對(duì)象:
Dim
Objx
As
New
SomeClass()
Dim
Objx
AS
New
Objx()
以上代碼是非法的。
呵呵##~
Me.Height = My.Computer.Screen.Bounds.Height
Me.Width = My.Computer.Screen.Bounds.Width
這是設(shè)置窗體的長(zhǎng)寬和屏幕的分辨率一樣大小,相當(dāng)于全屏。
如果Me.WindowState=FormWindowState.Maximized的話,只是單純的將窗體最大化,但恢復(fù)窗口大小后窗體的大小實(shí)際上還和原來一樣大。
VB.NET的特點(diǎn)
1.真正成為面向?qū)ο笠约爸С掷^承性的語(yǔ)言。
2.窗體設(shè)計(jì)器支持可視化繼承,并且包含了許多新的特性,比如自動(dòng)改變窗體大小、資源本地化支持、數(shù)據(jù)類工具內(nèi)在支持XML數(shù)據(jù)。
3.直接建立在.NET的框架結(jié)構(gòu)上,因此開發(fā)人員可以充分利用所有.NET平臺(tái)特性,也可以與其他的.NET語(yǔ)言交互。
4.為Windows應(yīng)用程序提供了XCOPY部署,開發(fā)者不再需要為DLL的版本問題擔(dān)憂。
直接添加一個(gè)MID父窗體或在已有窗體的屬性中找到IsMDIContainer屬性,然后設(shè)置為True,然后創(chuàng)建第二個(gè)窗體 ,需要加載子窗體的時(shí)候:
Dim NewMDIChild As New Form2
NewMDIChild.MdiParent = Me
NewMDIChild.Show()
Public?Shared?Sub?CheckMDIChildForm(ByVal?MDIForm?As?Windows.Forms.Form,?ByVal?MDIChildForm?As?Windows.Forms.Form,?ByVal?MDIChildFormName?As?String)
If?MDIForm.MdiChildren.Length??1?Then
'如果沒有任何一個(gè)MDI子窗體,則創(chuàng)該MDI子窗體的窗體實(shí)例
Dim?MDIChildFrm?As?Windows.Forms.Form?=?MDIChildForm?'?定義MDI子窗體
MDIChildFrm.MdiParent?=?MDIForm?'指定父窗體
MDIChildFrm.Show()?'打開窗體
Exit?Sub
Else
Dim?x?As?Integer
Dim?frmyn?As?Boolean
For?x?=?0?To?(MDIForm.MdiChildren.Length)?-?1
Dim?tempChild?As?Windows.Forms.Form?=?CType(MDIForm.MdiChildren(x),?Windows.Forms.Form)
If?tempChild.Name?=?MDIChildFormName?Then
'檢測(cè)到有該MDI子窗體,設(shè)為激活?并退出循環(huán)
frmyn?=?True
tempChild.BringToFront()
Exit?For
Else
frmyn?=?False
End?If
Next
If?Not?frmyn?Then
'在打開的窗體中沒檢測(cè)到則新建
Dim?MDIChildFrm?As?Windows.Forms.Form?=?MDIChildForm?'?定義MDI子窗體
MDIChildFrm.MdiParent?=?MDIForm?'指定父窗體
MDIChildFrm.Show()?'打開窗體
End?If
End?If
End?Sub