共用方式為


逐步解說:示範視覺化繼承

更新:2010 年 9 月

視覺化繼承可讓您查看基底表單上的控制項,並加入新的控制項。 在這個逐步解說中,您將建立基底表單,並將它編譯至類別庫。 您會將這個類別庫匯入至其他專案中,並建立繼承自基底表單的新表單。 在瀏覽這份逐步解說期間,您將了解如何:

  • 建立包含基底表單的類別庫專案。

  • 加入其屬性可由基底表單的衍生類別 (Derived Class) 來修改的按鈕。

  • 加入基底表單繼承者所無法修改的按鈕。

  • 建立內含繼承自 BaseForm 的表單的專案。

最後,這個逐步解說將展示繼承表單中 Private 和 Protected 控制項之間的差異。

注意事項注意事項

根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。 若要變更設定,請從 [工具] 功能表中選取 [匯入和匯出設定]。 如需詳細資訊,請參閱 使用設定

警告

並非所有的控制項都支援從基底表單進行視覺化繼承。 下列控制項不支援此逐步解說所描述的案例:

    WebBrowser

    ToolStrip

    ToolStripPanel

    TableLayoutPanel

    FlowLayoutPanel

    DataGridView

不論您使用哪一個修飾詞 (private、protected 或 public),繼承表單中的這些控制項一律都是唯讀。

案例步驟

首先建立基底表單。

若要建立包含基底表單的類別庫專案

  1. 在 [檔案] 功能表上,選取 [新增],然後按一下 [專案],開啟 [新增專案] 對話方塊。

  2. 建立名為 BaseFormLibrary 的 Windows Form 應用程式。 如需詳細資訊,請參閱 HOW TO:建立新的 Windows Form 應用程式專案

  3. 若要建立類別庫 (Class Library) 而非標準的 Windows Form 應用程式,請以滑鼠右鍵按一下 [方案總管] 中的 [BaseFormLibrary] 專案節點,然後選取 [屬性]。

  4. 在專案屬性中,將 [輸出類型] 從 [Windows 應用程式] 變更為 [類別庫]。

  5. 從 [檔案] 功能表中選擇 [全部儲存],將專案和檔案儲存至預設位置。

以下兩程序可將按鈕加入至基底表單。 為了要展示視覺化繼承,您將透過設定其 Modifiers 屬性來賦予按鈕不同的存取層級。

若要加入可由基底表單繼承者修改的按鈕

  1. 在設計工具中開啟 [Form1]。

  2. 在 [工具箱] 的 [所有 Windows Form] 索引標籤上,按兩下 [按鈕] 將按鈕加入至表單中。 使用滑鼠設定按鈕位置,並重新調整其大小。

  3. 在 [屬性] 視窗中,設定下列按鈕屬性:

    • 將 [Text] 屬性設定為 [Say Hello]

    • 將 [(Name)] 屬性設定為 [btnProtected]

    • 將 [Modifiers] 屬性設定為 [Protected]。 這使繼承 [Form1] 的表單可修改 [btnProtected] 的屬性

  4. 按兩下 [Say Hello] 按鈕,以加入 [Click] 事件的事件處理常式。

  5. 將以下程式碼行加入至事件處理常式:

    MessageBox.Show("Hello, World!")
    
    MessageBox.Show("Hello, World!");
    

若要加入無法由基底表單繼承者修改的按鈕

  1. 按一下 [程式碼編輯器] 上方的 [Form1.vb [設計]]、[Form1.cs [設計]] 或 [Form1.jsl [設計]] 索引標籤,或按下 F7 鍵切換至設計檢視。

  2. 加入第二個按鈕並設定其屬性如下:

    • 將 [Text] 屬性設定為 [Say Goodbye]

    • 將 [(Name)] 屬性設定為 [btnPrivate]

    • 將 [Modifiers] 屬性設定為 [Private]。 這使繼承 [Form1] 的表單無法修改 [btnPrivate] 的屬性

  3. 按兩下 [Say Goodbye] 按鈕,以加入 [Click] 事件的事件處理常式。 將以下程式碼行置入事件程序中:

    MessageBox.Show("Goodbye!")
    
    MessageBox.Show("Goodbye!");
    
  4. 在 [建置] 功能表中,選擇 [建置 BaseForm Library] 以建置類別庫。

    一旦建置類別庫後,您就可以建立繼承您剛建立的表單的新專案。

若要建立包含繼承自基底表單之表單的專案

  1. 從 [檔案] 功能表中選擇 [加入],接著按一下 [新增專案] 以開啟 [加入新的專案] 對話方塊。

  2. 建立名為 InheritanceTest 的 Windows Form 應用程式。 如需詳細資訊,請參閱 HOW TO:建立新的 Windows Form 應用程式專案

若要加入繼承的表單

  1. 以滑鼠右鍵按一下 [方案總管] 中的 [InheritanceTest] 專案,然後選取 [加入],再選取 [新增項目]。

  2. 在 [加入新項目] 對話方塊中,選取 [Windows Form] 分類 (如果有類別清單的話),然後選取 [繼承的表單] 範本。

  3. 保留預設名稱 [Form2],然後按一下 [加入]。

  4. 在 [繼承選取器] 對話方塊中,從 [BaseFormLibrary] 專案選取 [Form1],當做要繼承的表單,然後按一下 [確定]。

    這會在 [InheritanceTest] 專案中建立衍生自上述 [BaseFormLibrary] 表單的表單。

  5. 如果設計工具中繼承表單 ([Form2]) 尚未開啟,請按兩下將它開啟。

    在設計工具中,繼承按鈕的上方都會有符號 (VisualBasicInheritanceSymbol 螢幕擷取畫面),表示它們是繼承的按鈕。

  6. 選取 [Say Hello] 按鈕,並注意調整大小的控點。 由於按鈕設為受保護的 (Protected),所以繼承者可移動它的位置、重新調整它的大小、變更它的標題和進行其他的修改。

  7. 選取私用 (Private) [Say Goodbye] 按鈕,請注意,它並沒有調整大小的控點。 此外,在 [屬性] 視窗中,這個按鈕的屬性呈灰色,表示它們無法修改。

  8. 如果您是使用 Visual C#:

    1. 在 [方案總管] 的 [InheritanceTest] 專案中,以滑鼠右鍵按一下 [Form1],然後選擇 [刪除]。 在隨即出現的訊息方塊中按一下 [確定] 確認刪除。

    2. 開啟 Program.cs 檔案,並且將 Application.Run(new Form1()); 這行變更為 Application.Run(new Form2());。

  9. 以滑鼠右鍵按一下 [方案總管] 中的 [InheritanceTest] 專案,然後選取 [設定為啟始專案]。

  10. 以滑鼠右鍵按一下 [方案總管] 中的 [InheritanceTest] 專案,然後選取 [屬性]。

  11. 在 [InheritanceTest] 屬性頁中,將 [啟始物件] 設定為繼承表單 ([Form2])。

  12. 按下 F5 以執行應用程式,並觀察繼承表單的行為。

後續步驟

繼承讓使用者以類似方式控制整個作業。 請開啟新的類別庫專案,然後加入使用者控制項。 在其中加入構成控制項並編譯該專案。 開啟另一個新類別庫並加入已編譯類別庫的參考。 同時,請嘗試將繼承的控制項 (透過 [加入新項目] 對話方塊) 加入至專案中,並使用 [繼承選取器]。 新增使用者控制項,並變更 Inherits (Visual C# 中的 :) 陳述式。 如需詳細資訊,請參閱 HOW TO:繼承 Windows Form

請參閱

工作

HOW TO:繼承 Windows Form

參考

繼承選取器對話方塊

Windows Form 逐步解說

其他資源

Windows Form 視覺繼承

Windows Form

變更記錄

日期

記錄

原因

2010 年 9 月

已更正步驟。

客戶回函。