vb.net多窗體屬性 vb多窗體程序設(shè)計

使用VB.NET的五個技巧之窗體嵌套

NET框架組件太大了 比任何以前所寫的封裝功能的庫都要大 這樣有好處 因為它大幅削減了建立應(yīng)用程序所需編寫的代碼 但是也使我們不可能完全了解該框架組件 但是我們很容易從中找到一些技巧

婁煩網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)公司成立與2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司

窗體嵌套

經(jīng)驗豐富的Visual Basic開發(fā)者知道多文檔界面(MDI)應(yīng)用程序能夠包含子窗體 那些子窗體由MDI父窗體管理 但是如果沒有MDI的能力你怎樣實現(xiàn)包含嵌套窗體?例如一個MDI子窗體也可能需要包含另一個窗體

有時能夠使用用戶控件(UserControl)實現(xiàn)這種功能 但是如果你真的需要把一個窗體嵌套進(jìn)另一個窗體 有多種方法可以實現(xiàn) 窗體衍生自Control類 這意味著它能被放入另一個窗體的控件集合中 使用如下的邏輯

Dim f As New frmEmbed ()Me Controls Add(f)f Show()

但是很不幸 這段代碼將會導(dǎo)致一個運行時(runtime)異常(見圖 )

圖 試圖把一個窗體添加到另一個窗體的控件集合時出現(xiàn)的運行時錯誤

為了避免這種異常 該窗體的TopLevel屬性必須設(shè)置為False(見下面的代碼)

Dim f As New frmEmbed () f TopLevel = False Me Controls Add(f) f Show()

圖 顯示的是使用上面的邏輯實現(xiàn)的一個窗體嵌入另一個窗體 嵌入的窗體有一個標(biāo)題條(它的顏色是未激活的系統(tǒng)顏色) 因此該嵌入窗體能在容器窗體內(nèi)四處拖動 在圖 中 該窗體從它的開始位置(左上角)拖到了右下角

圖 在容器窗體中有一個嵌入的窗體 嵌入的窗體能在容器窗體中拖動

通常在顯示嵌入的窗體前先設(shè)置它的位置 這只需要簡單的設(shè)置嵌入窗體的Left和Top屬性 嵌入窗體的位置與容器窗體是相對的

與MDI子窗體不同 嵌入窗體能覆蓋容器窗體上的控件 圖 顯示了它們的不同

圖 嵌入窗體(左)可以覆蓋容器窗體上的控件 MDI子窗體(右)不能覆蓋MDI父窗體上的控件

在右邊的MDI例子中 沒有辦法使按鈕隱藏在子窗體的后面 但是在左邊該按鈕被嵌入窗體覆蓋了

當(dāng)窗體第一次被嵌入時 它將顯示在容器窗體上的已存在的控件的后面 當(dāng)它被點擊時 它走向前臺并停留在那兒 這會打擾用戶 但是能通過插入下面的代碼防止這種情況發(fā)生

f BringToFront()

嵌入的窗體可以包含其它的嵌入窗體 沒有實際的限制 圖 顯示了一個本身包含嵌入的窗體的嵌入窗體

lishixinzhi/Article/program/net/201311/12398

如何給VB.NET窗體添加子窗體?

直接添加一個MID父窗體或在已有窗體的屬性中找到IsMDIContainer屬性,然后設(shè)置為True,然后創(chuàng)建第二個窗體 ,需要加載子窗體的時候:

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

'如果沒有任何一個MDI子窗體,則創(chuàng)該MDI子窗體的窗體實例

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

'檢測到有該MDI子窗體,設(shè)為激活?并退出循環(huán)

frmyn?=?True

tempChild.BringToFront()

Exit?For

Else

frmyn?=?False

End?If

Next

If?Not?frmyn?Then

'在打開的窗體中沒檢測到則新建

Dim?MDIChildFrm?As?Windows.Forms.Form?=?MDIChildForm?'?定義MDI子窗體

MDIChildFrm.MdiParent?=?MDIForm?'指定父窗體

MDIChildFrm.Show()?'打開窗體

End?If

End?If

End?Sub

用VB.NET輕松制作特效窗體

體是Windows應(yīng)用程序的基礎(chǔ) 新一代的開發(fā)工具Visual Basic Net為設(shè)計制作窗體提供了更多簡單而豐富的方法 無需再求助于復(fù)雜而易錯的API函數(shù) 我們就可以輕松制作多種特效窗體 輕松制作透明窗體VB NET可以輕松制作出任一透明度的窗體 我們只要在窗體的 屬性 窗口中 將 Opacity 屬性設(shè)置為一個介于 (完全透明)與 (完全不透明)之間的值就可以了 Dim frm As FrmTrans = New FrmTrans()frm Opacity = frm ShowDialog() 輕松制作始終位于最上層的窗體在VB 中 要制作一個始終位于最上層的窗體我們只能求助于令人頭痛的API函數(shù) 然而在 NET 中 我們只要簡單設(shè)置窗體的 TopMost 屬性就可實現(xiàn)同樣效果了!例如 Dim frm As frmTopMost = New frmTopMost()frm TopMost = Truefrm Show() 輕松制作不可見的窗體如果要編寫一個不讓別人發(fā)現(xiàn)的隱藏程序 制作不可見的窗體就是必須實現(xiàn)的第一步 窗體的可見性通常由 Visible 屬性控制 但是 如果希望 Windows 應(yīng)用程序的主窗體在應(yīng)用程序啟動時不可見 您將會發(fā)現(xiàn)將它的 Visible 屬性設(shè)置為 False 的方法無效 窗體總會自己顯示出來(這是因為 啟動窗體的生存期決定了應(yīng)用程序的生存期) 雖然如此 我們還是可以通過簡單將應(yīng)用程序的啟動設(shè)置為一個模塊 從而從窗體的生存期分出應(yīng)用程序的生存期 輕松實現(xiàn)不可見的窗體 在下面這個例子中 窗體在特定的時間內(nèi)自動隱藏 ( )在 Visual Basic 中 右擊項目并選擇 添加模塊 以將模塊添加到 Windows 應(yīng)用程序 ( )在已添加的模塊(或類)內(nèi) 創(chuàng)建可作為項目啟動對象的 Main 函數(shù) Sub main()Dim f As New Form ()f Visible = FalseWhile Hour(Date Now) 如果當(dāng)前時間早于 點 窗體自動隱藏Application DoEvents()End Whilef ShowDialog()End Sub 輕松編寫托盤程序托盤程序作為一類特殊的窗體 其快捷圖標(biāo)顯示在系統(tǒng)托盤中 窗體本身則隱藏不可見 在 NET之前版本的VB中編寫托盤程序是十分困難的 但是VB NET提供的新的NotifyIcon組件卻使VB初學(xué)者也能輕松編寫一個這樣的程序 新建 Windows應(yīng)用程序 設(shè)置主窗體Opacity屬性為 FormBorderStyle屬性為None ShowInTaskbar屬性為False 這樣窗體將在啟動后隱藏 在窗體上放置一個NotifyIcon組件NotifyIcon 一個ContextMenu(彈出菜單)組件ContextMenu 并根據(jù)需要為ContextMenu 添加菜單項 設(shè)置NotifyIcon 的ICON屬性 這個圖標(biāo)就是應(yīng)用程序出現(xiàn)在系統(tǒng)托盤中的快捷圖標(biāo) 設(shè)置NotifyIcon 的Text屬性為 VB NET托盤程序 這就是鼠標(biāo)移動到托盤圖標(biāo)時彈出的文字說明 設(shè)置NotifyIcon 的ContextMenu屬性為ContextMenu 也就是右鍵單擊快捷圖標(biāo)時的彈出菜單為ContextMenu OK 按F 運行!幾乎不用編寫代碼 一個托盤程序就這樣輕松實現(xiàn)了 lishixinzhi/Article/program/net/201311/13831

網(wǎng)站欄目:vb.net多窗體屬性 vb多窗體程序設(shè)計
文章起源:http://www.muchs.cn/article0/hjeeio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、云服務(wù)器虛擬主機(jī)、手機(jī)網(wǎng)站建設(shè)微信小程序、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管