熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

用VB.NET設計各種形狀的窗體界面二

2022-06-13   來源: .NET編程 

  
   結合上一節介紹的方法通過Visual Basic Net的菜單設計器按照圖和圖所示的菜單結構設計菜單
  
 

  
【MDI編程】項目的菜單結構之一

  
 

  
【MDI編程】項目的菜單結構之二

   在利用菜單設計器設計完菜單後分別在窗體中雙擊新建退出層疊顯示橫行平鋪縱向平鋪排列圖標菜單項這樣Visual Basic Net會在Formvb文件中分別產生這些菜單項的Click事件對應的處理代碼
  
   設定FormIsMdiContainer屬性值為True這把Form窗體定義為MDI窗體容器這一步設置是後面編程的基礎當設置此屬性值後Form的窗體也發生了改變是設置此屬性後的窗體模樣
  
 

  
把Form窗體設置為MDI窗體容器後的模樣

   選中圖中的窗口菜單項並設置此菜單項的MdiList屬性值為True其作用是當程序運行後如果新建了一個MDI窗體就會在窗口菜單項後自動加入一個以新建MDI窗體名稱命名的菜單項如果新建了多個MDI窗體則會在窗口菜單項後會加入以這些MDI窗體名稱命名的菜單項當MDI窗體被關閉那些以此MDI窗體命名的菜單項也會自動刪除具體可圖所示
  
   把Visua Basic Net的當前窗口切換到Formvb的代碼編輯窗口並在定義Form中組件的代碼區加入下列代碼下列代碼是定義一個變量此變量用以統計程序中新建MDI窗體的數量
  
  Private iFormCount As Integer =
  
   用下列代碼替換Formvb中的MenuItem的Click事件對應的處理代碼MenuItem即為圖中的新建菜單項下列代碼的作用是在新建一個MDI窗體
  
  Private Sub MenuItem_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles MenuItemClick
  Dim frmTemp As Form = New Form ( )
  新建一個窗體
  frmTempMdiParent = Me
  為當前創建的窗體設置MDI父窗體
  frmTempText = MDI窗體 + iFormCountToString ( )
  iFormCount = iFormCount +
  frmTempShow ( )
  把此MDI窗體顯示出來
  End Sub
  
   用下列代碼替換Formvb中的MenuItem的Click事件對應的處理代碼MenuItem即為圖中的退出菜單項下列代碼的作用是退出應用程序
  
  Private Sub MenuItem_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles MenuItemClick
  ApplicationExit ( )
  退出應用程序
  End Sub
  
   用下列代碼替換Formvb中的MenuItem的Click事件對應的處理代碼MenuItem即為圖中的層疊顯示菜單項下列代碼的作用是層疊排列窗體中的所有MDI窗體
  
  Private Sub MenuItem_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles MenuItemClick
  MeLayoutMdi ( MdiLayoutCascade )
  層疊排列窗體中的所有MDI窗體
  End Sub
  
   用下列代碼替換Formvb中的MenuItem的Click事件對應的處理代碼MenuItem即為圖中的水平平鋪菜單項下列代碼的作用是水平平鋪窗體中的所有MDI窗體
  
  Private Sub MenuItem_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles MenuItemClick
  MeLayoutMdi ( MdiLayoutTileHorizontal )
  水平平鋪窗體中的所有MDI窗體
  End Sub
  
   用下列代碼替換Formvb中的MenuItem的Click事件對應的處理代碼MenuItem即為圖中的垂直平鋪菜單項下列代碼的作用是垂直平鋪窗體中的所有MDI窗體
  
  Private Sub MenuItem_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles MenuItemClick
  MeLayoutMdi ( MdiLayoutTileVertical )
  垂直平鋪窗體中的所有MDI窗體
  End Sub
  
   用下列代碼替換Formvb中的MenuItem的Click事件對應的處理代碼MenuItem即為圖中的排列圖標菜單項下列代碼的作用是窗體中的所有MDI窗體排列圖標
  
  Private Sub MenuItem_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles MenuItemClick
  MeLayoutMdi ( MdiLayoutArrangeIcons )
  窗體中的所有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
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.