結合上一節介紹的方法
通過Visual Basic
Net的菜單設計器
按照圖
和圖
所示的菜單結構設計菜單
圖【MDI編程】項目的菜單結構之一 圖【MDI編程】項目的菜單結構之二 在利用菜單設計器設計完菜單後
分別在窗體中雙擊
新建
退出
層疊顯示
橫行平鋪
縱向平鋪
和
排列圖標
菜單項
這樣Visual Basic
Net會在Form
vb文件中分別產生這些菜單項的Click事件對應的處理代碼
設定Form
的
IsMdiContainer
屬性值為
True
這把Form
窗體定義為MDI窗體容器
這一步設置是後面編程的基礎
當設置此屬性值後
Form
的窗體也發生了改變
圖
是設置此屬性後的窗體模樣
圖把Form窗體設置為MDI窗體容器後的模樣 選中圖
中的
窗口
菜單項
並設置此菜單項的
MdiList
屬性值為
True
其作用是當程序運行後
如果新建了一個MDI窗體
就會在
窗口
菜單項後
自動加入一個以新建MDI窗體名稱命名的菜單項
如果新建了多個MDI窗體
則會在
窗口
菜單項後
會加入以這些MDI窗體名稱命名的菜單項
當MDI窗體被關閉
那些以此MDI窗體命名的菜單項也會自動刪除
具體可圖
所示
把Visua Basic
Net的當前窗口切換到Form
vb的代碼編輯窗口
並在定義Form
中組件的代碼區加入下列代碼
下列代碼是定義一個變量
此變量用以統計程序中新建MDI窗體的數量
Private iFormCount As Integer =
用下列代碼替換Form
vb中的MenuItem
的Click事件對應的處理代碼
MenuItem
即為圖
中的
新建
菜單項
下列代碼的作用是在新建一個MDI窗體
Private Sub MenuItem
_Click ( ByVal sender As System
Object
ByVal e As System
EventArgs ) Handles MenuItem
Click
Dim frmTemp As Form = New Form ( )
新建一個窗體
frmTemp
MdiParent = Me
為當前創建的窗體設置MDI父窗體
frmTemp
Text =
MDI窗體
+ iFormCount
ToString ( )
iFormCount = iFormCount +
frmTemp
Show ( )
把此MDI窗體顯示出來
End Sub
用下列代碼替換Form
vb中的MenuItem
的Click事件對應的處理代碼
MenuItem
即為圖
中的
退出
菜單項
下列代碼的作用是退出應用程序
Private Sub MenuItem
_Click ( ByVal sender As System
Object
ByVal e As System
EventArgs ) Handles MenuItem
Click
Application
Exit ( )
退出應用程序
End Sub
用下列代碼替換Form
vb中的MenuItem
的Click事件對應的處理代碼
MenuItem
即為圖
中的
層疊顯示
菜單項
下列代碼的作用是層疊排列窗體中的所有MDI窗體
Private Sub MenuItem
_Click ( ByVal sender As System
Object
ByVal e As System
EventArgs ) Handles MenuItem
Click
Me
LayoutMdi ( MdiLayout
Cascade )
層疊排列窗體中的所有MDI窗體
End Sub
用下列代碼替換Form
vb中的MenuItem
的Click事件對應的處理代碼
MenuItem
即為圖
中的
水平平鋪
菜單項
下列代碼的作用是水平平鋪窗體中的所有MDI窗體
Private Sub MenuItem
_Click ( ByVal sender As System
Object
ByVal e As System
EventArgs ) Handles MenuItem
Click
Me
LayoutMdi ( MdiLayout
TileHorizontal )
水平平鋪窗體中的所有MDI窗體
End Sub
用下列代碼替換Form
vb中的MenuItem
的Click事件對應的處理代碼
MenuItem
即為圖
中的
垂直平鋪
菜單項
下列代碼的作用是垂直平鋪窗體中的所有MDI窗體
Private Sub MenuItem
_Click ( ByVal sender As System
Object
ByVal e As System
EventArgs ) Handles MenuItem
Click
Me
LayoutMdi ( MdiLayout
TileVertical )
垂直平鋪窗體中的所有MDI窗體
End Sub
用下列代碼替換Form
vb中的MenuItem
的Click事件對應的處理代碼
MenuItem
即為圖
中的
排列圖標
菜單項
下列代碼的作用是窗體中的所有MDI窗體排列圖標
Private Sub MenuItem
_Click ( ByVal sender As System
Object
ByVal e As System
EventArgs ) Handles MenuItem
Click
Me
LayoutMdi ( MdiLayout
ArrangeIcons )
窗體中的所有MDI窗體排列圖標
End Sub
至此【MDI編程】項目的全部工作就完成了
圖
圖
和圖
是程序運行後的界面
圖【MDI編程】運行界面之一 圖【MDI編程】運行界面之二 圖【MDI編程】運行界面之三 此時我們注意到圖
所示的
窗口
菜單中增加許多子菜單
而在程序設計時
並沒有處理這些功能的代碼
這是由於第十一步中設置
窗口
菜單項的
MdiList
屬性值為
True
造成的
可見正確的設置組件的屬性值有時的確能夠代替煩雜的代碼編寫工作
五總結 本文主要內容有二個
其一是介紹的在Visual Basic
Net定制不規則窗體的實現方法
在Visual Basic
Net中創建不規則窗體主要使用的是Region類和GraphicsPath類
GraphicsPath主要是繪制窗體的形狀
Region主要是以GraphicsPath來構建窗體
結合本文的實現思路和具體方法
我想對於其他形狀的窗體
在掌握GraphicsPath類提供的使用方法的前提下
加上對所要創建不規則窗體的規劃設計
用Visual Basic
Net實現起來應該不算很困難
本文的另外一個主要內容就是介紹在Visual Basic
Net編寫MDI應用程序的基本過程
技巧和注意事項
通過本文的介紹可見Visual Basic
Net的MDI編程並沒有什麼復雜的地方
只需了解一些對MDI窗體處理的方法及其調用方式
當然更重要的是要了解並掌握某些組件的針對MDI的屬性及其設置方式
From:http://tw.wingwit.com/Article/program/net/201311/11698.html