逐步解說: 建立 Windows Form 工具箱控制項
Windows Form 工具箱控制項範本中包含的Visual Studio 2010 SDK可讓您建立的控制項,會自動新增到工具箱安裝擴充功能時。 這個逐步解說會示範如何使用範本來建立 [計數器] 控制項,您可以發佈給其他使用者。
必要條件
若要完成這個逐步解說中,您必須安裝Visual Studio 2010 SDK。
![]() |
---|
如需有關 Visual Studio 的 SDK 的詳細資訊,請參閱擴充 Visual Studio 的概觀。若要了解如何下載 Visual Studio 的 SDK,請參閱Visual Studio 擴充性開發人員中心可以在 MSDN 網站上。 |
尋找在 Visual Studio 中的 Windows Form 工具箱控制項範本
Windows Form 工具箱控制項範本可用於新的專案 對話方塊後,在 安裝的範本,在這些位置中:
Visual Basic, 擴充性。 專案的語言是 Visual Basic。
視覺 C#, 擴充性。 專案的語言是 C#。
建立 Windows Form 工具箱控制項專案
Windows Form 工具箱控制項範本會建立一個未定義的使用者控制項,並提供功能來新增控制項所需的所有工具箱。
若要建立專案
在 [檔案] 功能表上,按一下 [新增],然後按一下 [專案]。
在新的專案 對話方塊後,在 安裝的範本,展開您偏好的程式設計語言的節點,然後選取 擴充性。 在 [專案類型清單中,選取 [ Windows Form 工具箱控制項。
在名稱方塊中,輸入您想要用於專案的名稱。 (此逐步解說中使用的名稱, 計數器。) 按一下 [確定]。
這會建立包含使用者控制項,放置在控制項屬性的方案工具箱,和部署資訊清單的 VSIX。 名稱 方塊設定方案的名稱和命名空間的名稱,但它並不會設定控制項的名稱,在所顯示的樣子 工具箱。 您將設定,稍後在逐步解說。
建置使用者介面控制項
計數器控制項需要兩個的子控制項: Label以顯示目前的計數,以及Button重設為 0 的計數。 因為呼叫端遞增計數器的程式設計的方式,就需要其他的子控制項。
若要建立使用者介面
在方案總管] 中,連按兩下以開啟設計工具] 中的 ToolboxControl.cs。
從工具箱,拖曳 標籤控制項至設計介面。
調整為 150 x 50 像素,使用者控制項的大小和縮放按鈕以 50 x 20 像素。
在屬性 ] 視窗中,設定下列的值在設計介面上的控制項。
控制項
屬性
值
Label1
文字
""
Button1
名稱
btnReset
Button1
文字
重設
程式碼撰寫使用者控制項
計數器 控制項都會公開 (expose) 的方法,以逐步遞增計數器,而引發的事件,此計數器會遞增,每當 重設 按鈕和三個屬性來儲存目前的計數、 顯示文字,以及是否要顯示或隱藏 重設 ] 按鈕。 ProvideTolboxControl屬性會決定在何處工具箱計數器 ,會出現控制項。
使用者控制項的程式碼
連按兩下表單,在程式碼] 視窗中開啟它的 load 事件處理常式。
上述事件處理常式中,建立要儲存的計數器值的字串和儲存顯示的文字,如下列範例所示的整數。
int currentValue; string displayText;
建立下列的公用屬性宣告。
public int Value { get { return currentValue; } } public string Message { get { return displayText; } set { displayText = value; } } public bool ShowReset { get { return btnReset.Visible; } set { btnReset.Visible = value; } }
呼叫端可以存取這些屬性來取得及設定計數器,顯示文字,來顯示或隱藏重設 ] 按鈕。 呼叫者可以取得唯讀屬性的目前值Value屬性,但它們無法設定的值直接。
將下列程式碼放在Load控制項的事件。
private void ToolboxControl_Load(object sender, EventArgs e) { currentValue = 0; label1.Text = Message + Value; }
設定標籤文字Load事件可讓目標屬性,以載入,才能將套用其值。 在建構函式中設定的標籤文字,將會產生空的標籤。
建立下列的公用方法,以逐步遞增計數器。
public void Increment() { currentValue++; label1.Text = displayText + Value; Incremented(this, EventArgs.Empty); }
加入宣告Incremented事件。
public event EventHandler Incremented;
呼叫者可以將處理常式加入至這個事件,以因應變更計數器的值。
返回 [設計] 檢視,按兩下 重設按鈕,以產生btnReset_Click事件處理常式,然後填入在下列範例所示。
private void btnReset_Click(object sender, EventArgs e) { currentValue = 0; label1.Text = displayText + Value; }
在類別定義中,以滑鼠右鍵按一下類別名稱,請按一下重構,按一下 [ 重新命名,然後將變更為類別名稱 計數器。 這是會顯示在 [名稱工具箱。
正上方的類別定義中,在ProvideToolboxControl在屬性宣告,請變更值,從第一個參數"Counter"到"General"。 這會設定將會裝載該控制項中的項目群組的名稱工具箱。
下列範例所示ProvideToolboxControl屬性並調整過的類別定義。
[ProvideToolboxControl("General", false)] public partial class Counter : UserControl
下列範例會顯示已完成的使用者控制項的程式碼。
using System; using System.Windows.Forms; namespace Counter { [ProvideToolboxControl("General", false)] public partial class Counter : UserControl { public Counter() { InitializeComponent(); } private void btnReset_Click(object sender, EventArgs e) { currentValue = 0; label1.Text = displayText + Value; } int currentValue; string displayText; public int Value { get { return currentValue; } } public string Message { get { return displayText; } set { displayText = value; } } public bool ShowReset { get { return btnReset.Visible; } set { btnReset.Visible = value; } } private void ToolboxControl_Load(object sender, EventArgs e) { currentValue = 0; label1.Text = Message + Value; } public void Increment() { currentValue++; label1.Text = displayText + Value; Incremented(this, EventArgs.Empty); } public event EventHandler Incremented; } }
測試控制項
若要測試工具箱控制第一次在開發環境中進行測試,然後在已編譯的應用程式中進行測試。
若要測試控制項
按 F5。
這會在建置專案,並開啟已安裝該控制項的 Visual Studio 的第二個執行個體。
在 Visual Studio 的新執行個體,建立一個 Windows Form 專案。
在方案總管] 中,連按兩下,在設計工具中開啟 Form1.cs。
在工具箱、 計數器 控制項應該會顯示在 一般一節。
拖曳計數器控制項加入表單,然後再選取。 Value, Message,以及ShowReset屬性會顯示在屬性加上繼承自屬性] 視窗, UserControl。
設定Message屬性,以計數:。
拖曳Button控制項加入表單,並依此設定按鈕的名稱和文字屬性測試。
按兩下按鈕,在 [程式碼] 檢視中開啟 Form1.cs,再建立 click 處理常式。
Click 處理常式中,在呼叫counter1.Increment()。
在建構函式函式呼叫之後, InitializeComponent,型別 Counter1.Incremented = ,然後按 TAB 鍵兩次。
Visual Studio 會產生表單層級的處理常式Counter1.Incremented事件。
反白顯示Throw事件處理常式,而型別中的陳述式 mbox,然後按兩次以產生一個訊息方塊,從 mbox 的程式碼片段] 索引標籤。
在下一行中,加入下列if/else區塊,若要設定的可見性重設 ] 按鈕。
if (counter1.Value < 5) counter1.ShowReset = false; else counter1.ShowReset = true;
按 F5。
表單隨即開啟。 計數器控制項就會顯示下列文字。
計數: 0
按一下 [測試]。
計數器的增量,Visual Studio 就會顯示訊息方塊。
關閉訊息方塊。
重設按鈕就會消失。
按一下 [ 測試 ,直到計數器到達 5,然後關閉訊息方塊。
重設 re-appears 的按鈕。
按一下 [重設]。
此計數器會重設為 0。
後續步驟
當您建置工具箱 控制項,Visual Studio 會建立一個名為檔案 ProjectName.vsix 專案的 [\bin\debug\] 資料夾中。 您可以將控制項部署上載到網路或網站的.vsix 檔案。 當使用者開啟.vsix 檔案時,控制項已安裝並加入至 Visual Studio 工具箱在使用者電腦上。 或者,您可以上載.vsix Visual Studio 庫 Web 站台,讓使用者可以藉由在瀏覽找到它 擴充管理員。