逐步解說:示範視覺化繼承
更新:2010 年 9 月
視覺化繼承可讓您查看基底表單上的控制項,並加入新的控制項。 在這個逐步解說中,您將建立基底表單,並將它編譯至類別庫。 您會將這個類別庫匯入至其他專案中,並建立繼承自基底表單的新表單。 在瀏覽這份逐步解說期間,您將了解如何:
建立包含基底表單的類別庫專案。
加入其屬性可由基底表單的衍生類別 (Derived Class) 來修改的按鈕。
加入基底表單繼承者所無法修改的按鈕。
建立內含繼承自 BaseForm 的表單的專案。
最後,這個逐步解說將展示繼承表單中 Private 和 Protected 控制項之間的差異。
![]() |
---|
根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。 若要變更設定,請從 [工具] 功能表中選取 [匯入和匯出設定]。 如需詳細資訊,請參閱 使用設定。 |
警告
並非所有的控制項都支援從基底表單進行視覺化繼承。 下列控制項不支援此逐步解說所描述的案例:
不論您使用哪一個修飾詞 (private、protected 或 public),繼承表單中的這些控制項一律都是唯讀。
案例步驟
首先建立基底表單。
若要建立包含基底表單的類別庫專案
在 [檔案] 功能表上,選取 [新增],然後按一下 [專案],開啟 [新增專案] 對話方塊。
建立名為 BaseFormLibrary 的 Windows Form 應用程式。 如需詳細資訊,請參閱 HOW TO:建立新的 Windows Form 應用程式專案。
若要建立類別庫 (Class Library) 而非標準的 Windows Form 應用程式,請以滑鼠右鍵按一下 [方案總管] 中的 [BaseFormLibrary] 專案節點,然後選取 [屬性]。
在專案屬性中,將 [輸出類型] 從 [Windows 應用程式] 變更為 [類別庫]。
從 [檔案] 功能表中選擇 [全部儲存],將專案和檔案儲存至預設位置。
以下兩程序可將按鈕加入至基底表單。 為了要展示視覺化繼承,您將透過設定其 Modifiers 屬性來賦予按鈕不同的存取層級。
若要加入可由基底表單繼承者修改的按鈕
在設計工具中開啟 [Form1]。
在 [工具箱] 的 [所有 Windows Form] 索引標籤上,按兩下 [按鈕] 將按鈕加入至表單中。 使用滑鼠設定按鈕位置,並重新調整其大小。
在 [屬性] 視窗中,設定下列按鈕屬性:
將 [Text] 屬性設定為 [Say Hello]
將 [(Name)] 屬性設定為 [btnProtected]
將 [Modifiers] 屬性設定為 [Protected]。 這使繼承 [Form1] 的表單可修改 [btnProtected] 的屬性
按兩下 [Say Hello] 按鈕,以加入 [Click] 事件的事件處理常式。
將以下程式碼行加入至事件處理常式:
MessageBox.Show("Hello, World!")
MessageBox.Show("Hello, World!");
若要加入無法由基底表單繼承者修改的按鈕
按一下 [程式碼編輯器] 上方的 [Form1.vb [設計]]、[Form1.cs [設計]] 或 [Form1.jsl [設計]] 索引標籤,或按下 F7 鍵切換至設計檢視。
加入第二個按鈕並設定其屬性如下:
將 [Text] 屬性設定為 [Say Goodbye]
將 [(Name)] 屬性設定為 [btnPrivate]
將 [Modifiers] 屬性設定為 [Private]。 這使繼承 [Form1] 的表單無法修改 [btnPrivate] 的屬性
按兩下 [Say Goodbye] 按鈕,以加入 [Click] 事件的事件處理常式。 將以下程式碼行置入事件程序中:
MessageBox.Show("Goodbye!")
MessageBox.Show("Goodbye!");
在 [建置] 功能表中,選擇 [建置 BaseForm Library] 以建置類別庫。
一旦建置類別庫後,您就可以建立繼承您剛建立的表單的新專案。
若要建立包含繼承自基底表單之表單的專案
從 [檔案] 功能表中選擇 [加入],接著按一下 [新增專案] 以開啟 [加入新的專案] 對話方塊。
建立名為 InheritanceTest 的 Windows Form 應用程式。 如需詳細資訊,請參閱 HOW TO:建立新的 Windows Form 應用程式專案。
若要加入繼承的表單
以滑鼠右鍵按一下 [方案總管] 中的 [InheritanceTest] 專案,然後選取 [加入],再選取 [新增項目]。
在 [加入新項目] 對話方塊中,選取 [Windows Form] 分類 (如果有類別清單的話),然後選取 [繼承的表單] 範本。
保留預設名稱 [Form2],然後按一下 [加入]。
在 [繼承選取器] 對話方塊中,從 [BaseFormLibrary] 專案選取 [Form1],當做要繼承的表單,然後按一下 [確定]。
這會在 [InheritanceTest] 專案中建立衍生自上述 [BaseFormLibrary] 表單的表單。
如果設計工具中繼承表單 ([Form2]) 尚未開啟,請按兩下將它開啟。
在設計工具中,繼承按鈕的上方都會有符號 (
),表示它們是繼承的按鈕。
選取 [Say Hello] 按鈕,並注意調整大小的控點。 由於按鈕設為受保護的 (Protected),所以繼承者可移動它的位置、重新調整它的大小、變更它的標題和進行其他的修改。
選取私用 (Private) [Say Goodbye] 按鈕,請注意,它並沒有調整大小的控點。 此外,在 [屬性] 視窗中,這個按鈕的屬性呈灰色,表示它們無法修改。
如果您是使用 Visual C#:
在 [方案總管] 的 [InheritanceTest] 專案中,以滑鼠右鍵按一下 [Form1],然後選擇 [刪除]。 在隨即出現的訊息方塊中按一下 [確定] 確認刪除。
開啟 Program.cs 檔案,並且將 Application.Run(new Form1()); 這行變更為 Application.Run(new Form2());。
以滑鼠右鍵按一下 [方案總管] 中的 [InheritanceTest] 專案,然後選取 [設定為啟始專案]。
以滑鼠右鍵按一下 [方案總管] 中的 [InheritanceTest] 專案,然後選取 [屬性]。
在 [InheritanceTest] 屬性頁中,將 [啟始物件] 設定為繼承表單 ([Form2])。
按下 F5 以執行應用程式,並觀察繼承表單的行為。
後續步驟
繼承讓使用者以類似方式控制整個作業。 請開啟新的類別庫專案,然後加入使用者控制項。 在其中加入構成控制項並編譯該專案。 開啟另一個新類別庫並加入已編譯類別庫的參考。 同時,請嘗試將繼承的控制項 (透過 [加入新項目] 對話方塊) 加入至專案中,並使用 [繼承選取器]。 新增使用者控制項,並變更 Inherits (Visual C# 中的 :) 陳述式。 如需詳細資訊,請參閱 HOW TO:繼承 Windows Form。
請參閱
工作
參考
其他資源
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2010 年 9 月 |
已更正步驟。 |
客戶回函。 |