程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> Visual Basic 菜單在應用程序中的使用

Visual Basic 菜單在應用程序中的使用

編輯:VB綜合教程

  再論窗體

  除窗體設計原理以外,還需考慮應用程序的開始與結束。有一些技巧用於決定應用程序啟動時的外觀。熟悉應用程序卸載時進行的一些處理也很重要。

  設置啟動窗體

  在缺省情況下,應用程序中的第一個窗體被指定為啟動窗體。應用程序開始運行時,此窗體就被顯示出來(因而最先執行的代碼是該窗體的Form_Initialize 事件中的代碼)。如果想在應用程序啟動時顯示別的窗體,那麼就得改變啟動窗體。

  要改變啟動窗體,請按照以下步驟執行:

  1. 從“工程”菜單中,選取“工程屬性”。

  2. 選取“一般”。

  3. 在“啟動對象”ListBox 中,選取要作為新啟動窗體的窗體。

  4. 選取“確定”。

  沒有啟動窗體時的啟動

  有時候也許要應用程序啟動時不加載任何窗體。例如:可能想先運行裝入數據文件的代碼,然後再根據數據文件的內容決定顯示幾個不同窗體中的哪一個。要做到這一點,可在標准模塊中創建一個名為 Main 的子過程,如下面的例子所示。

  

Sub Main()
   
          Dim intStatus As Integer
             '調用一個函數過程來檢驗用戶狀態。
   
          intStatus = GetUserStatus
             '根據狀態顯示某個啟動窗體。
   
          If intStatus = 1 Then
 
          frmMain.Show
   
          Else
 
          frmPassword.Show
End If

  這個過程必須是一個子過程,且不能在窗體模塊內。欲將 Sub Main 過程設為啟動對象,可從“工程”菜單中,選取“工程屬性”,再選“一般”,然後從“啟動對象”框中選定“Sub Main”。

  顯示啟動時的快速顯示

  如果啟動時有一個較長的執行過程,例如要從數據庫中裝入大量數據或者要裝入一些大型位圖,這時可能希望在啟動時給出一個快速顯示。快速顯示是一種窗體,它通常顯示的是諸如應用程序名,版權信息和一個簡單的位圖等內容。啟動 Visual Basic 時所顯示的屏幕就是一個快速顯示。

  要顯示快速顯示,需用 Sub Main 過程作為啟動對象,並用 Show 方法顯示該窗體:

  

Private Sub Main()
             '顯示快速顯示。
   
          frmSplash.Show
             '在此處添加啟動過程。
 
          ...
             '顯示主窗體並卸載快速顯示。
   
          frmMain.Show
   
          Unload frmSplash
End Sub

  當一些啟動例程正在執行時,快速顯示能吸引用戶的注意,造成應用程序裝載很快的錯覺。當這些啟動例程完成以後,可以裝入第一個窗體並使其快速顯示卸載。

  對於快速顯示的設計來說,盡量簡單為好。如果使用大量位圖或者大量控件,則快速顯示本身裝入將會變慢。

  結束應用程序

  當所有窗體都已關閉並且沒有代碼正在執行時,事件驅動的應用程序就停止運行。如果最後一個可見窗體關閉時仍有隱藏窗體存在,那麼,應用程序表現為已經結束了(因為沒有可見的窗體),可實際上應用程序仍在繼續運行,直至所有隱藏窗體都關閉為止。之所以出現這種情況,是因為對已卸載窗體的屬性或控件的任何訪問,都將導致隱含地、不予顯示地加載那個窗體。

  避免出現關閉應用程序時的這類問題,最好的辦法是確保所有的窗體都已卸載。如果有一個以上窗體,可以使用 Forms 集合和 Unload 語句。例如,在主窗體上可以用一個名為 cmdQuit 的命令按鈕退出程序。如果應用程序只有一個窗體,則 Click 事件過程可簡單為:

  

Private Sub cmdQuit_Click ()
   
          Unload Me
End Sub

  如果應用程序使用多窗體,通過把代碼放入主窗體的 Unload 事件過程可以卸載這些窗體。可以使用 Forms 集合確保找到並關閉所有窗體。下列代碼就是使用窗體集合來卸載所有窗體的:

  

Private Sub Form_Unload (Cancel As Integer)
   
          Dim i as integer
             '在窗體集合中循環並卸載每個窗體。
   
          For i = Forms.Count - 1 to 0 Step - 1
 
          Unload Forms(i)
   
          Next
End Sub

  • 首頁
  • 上一頁
  • 1
  • 2
  • 3
  • 4
  • 下一頁
  • 尾頁
  • 共4頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved