建立 Windows Form 工具箱控制項
如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件。
Windows Form 工具箱控制項項目範本隨附於 Visual Studio 擴充性工具 (VS SDK) 中可讓您建立的控制項,會自動加入至工具箱時安裝延伸模組。 本主題說明如何使用範本來建立簡單的計數器控制項,您就可以散發給其他使用者。
必要條件
啟動 Visual Studio 2015 中,您未安裝 Visual Studio SDK 從 「 下載中心 」。 它是 Visual Studio 安裝程式的選用功能。 您也可以在稍後安裝 VS SDK。 如需詳細資訊,請參閱安裝 Visual Studio SDK。
建立 Windows Form 工具箱控制項
Windows Form 工具箱控制項範本會建立未定義的使用者控制項,並提供的所有功能,才能將控制項加入至工具箱。
使用 Windows Form 工具箱控制項中建立的擴充功能
建立 VSIX 專案,名為
MyWinFormsControl
。 您可以找到 VSIX 專案範本,在新的專案下的對話方塊Visual C# / 擴充性。專案開啟時,加入Windows Form 工具箱控制項項目範本名為
Counter
。 在方案總管 中,以滑鼠右鍵按一下專案節點,然後選取加入 / 新的項目。 在加入新項目 對話方塊中,移至Visual C# / 擴充性,然後選取Windows Form 工具箱控制項這會新增使用者控制項,
ProvideToolboxControlAttribute
RegistrationAttribute要放置在控制項工具箱,和Microsoft.VisualStudio.ToolboxControl資產部署的 VSIX 資訊清單中的項目。
建置控制項的使用者介面
Counter
控制項需要兩個的子控制項︰標籤以顯示目前的計數和按鈕計數重設為 0。 需要其他的子控制項,因為呼叫端將會以程式設計方式遞增計數器。
建置使用者介面
在方案總管 中,連按兩下 Counter.cs 在設計工具中開啟它。
移除 「 按一下這裡 ! 」 按鈕,預設會包含當您將加入 Windows Form 工具箱控制項項目範本。
從工具箱,拖曳
Label
控制項,然後Button
其下的控制項至設計介面。調整 150 整體使用者控制項的大小、 50 像素為單位,並調整大小的按鈕控制項為 50,20 像素。
在屬性 視窗中,設定下列值在設計介面上的控制項。
控制項 屬性 值 Label1
文字 "" Button1
Name btnReset Button1
文字 重設
編碼使用者控制項
Counter
控制項會公開遞增計數器的方法、計數器每次遞增所引發的事件、 Reset
按鈕、儲存目前計數的三個屬性、顯示文字,以及要顯示或隱藏 Reset
按鈕。 ProvideToolboxControl
屬性會決定在何處工具箱Counter
控制項將會出現。
使用者控制項的程式碼
按兩下表單,以開啟其 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; } }
呼叫端可以存取這些屬性,以取得及設定此計數器的顯示文字,以顯示或隱藏
Reset
按鈕。 呼叫者可以取得目前的唯讀值Value
屬性,但是不能值直接設定。下列程式碼置於
Load
控制項的事件。private void Counter_Load(object sender, EventArgs e) { currentValue = 0; label1.Text = Message + Value; }
設定標籤中的文字載入事件可讓套用它們的值之前載入的目標屬性。 設定標籤建構函式中的文字會導致空標籤。
建立下列公用方法,並遞增計數器。
public void Increment() { currentValue++; label1.Text = displayText + Value; Incremented(this, EventArgs.Empty); }
新增宣告
Incremented
控制項類別的事件。public event EventHandler Incremented;
呼叫端可以新增處理常式,此事件以回應變更計數器的值。
返回 [設計] 檢視,然後按兩下
Reset
按鈕,以產生btnReset_Click
事件處理常式,然後在下列範例所示填入。private void btnReset_Click(object sender, EventArgs e) { currentValue = 0; label1.Text = displayText + Value; }
正上方類別定義,在
ProvideToolboxControl
屬性宣告中,從第一個參數的值變更"MyWinFormsControl.Counter"
到"General"
。 這會設定主控 [工具箱] 控制項的項目群組名稱。下列範例會顯示
ProvideToolboxControl
屬性和調整過的類別定義。[ProvideToolboxControl("General", false)] public partial class Counter : UserControl
測試控制項
若要測試工具箱控制,先在開發環境中進行測試,然後編譯的應用程式。
測試控制項
按 F5。
這會建置專案,並開啟已安裝控制項的 Visual Studio 的第二個實驗性執行個體。
在 Visual Studio 的實驗執行個體,建立Windows Form 應用程式專案。
在方案總管 中,連按兩下以開啟設計工具中,如果它尚未開啟 Form1.cs。
在工具箱、
Counter
控制項應該顯示在一般一節。拖放到
Counter
控制項加入表單,並加以選取。Value
,Message
,和ShowReset
屬性會顯示在屬性 視窗中的,以及繼承自屬性UserControl。將
Message
屬性設定為Count:
。拖放到按鈕控制項至表單,並將按鈕的名稱與文字屬性
Test
。按兩下這個按鈕,程式碼檢視中開啟 Form1.cs,並建立 click 處理常式。
在 click 處理常式呼叫
counter1.Increment()
。在建構函式,呼叫之後
InitializeComponent
,型別counter1``.``Incremented +=
然後按 TAB 鍵兩次。Visual Studio 產生的表單層級處理常式
counter1.Incremented
事件。反白顯示
Throw
事件處理常式,型別中的陳述式mbox
,然後按兩次,從 mbox 程式碼片段中產生的訊息方塊的 TAB 鍵。在下一行中,新增下列
if
/else
區塊來設定可見性的Reset
按鈕。if (counter1.Value < 5) counter1.ShowReset = false; else counter1.ShowReset = true;
按 F5。
開啟的表單。
Counter
控制項會顯示下列文字。計數︰ 0
按一下 [測試] 。
計數器增量和 Visual Studio 會顯示訊息方塊。
關閉訊息方塊。
重設按鈕就會消失。
按一下 測試直到計數器到達5關閉訊息方塊,每次。
重設按鈕會再度出現。
按一下 [重設] 。
此計數器會重設為0。
後續步驟
當您建置 [工具箱] 控制項時,Visual Studio 會在專案的 \bin\debug\ 資料夾中建立名為 ProjectName.vsix 的檔案。 您可以將 .vsix 檔案上傳到到網路或網站以部署控制項。 當使用者開啟.vsix 檔案時,安裝及新增至 Visual Studio 控制項工具箱在使用者電腦上。 或者,您可以上傳至.vsix 檔Visual Studio 元件庫網站,讓使用者可以藉由瀏覽以尋找它工具 / 擴充功能和更新 對話方塊。
另請參閱
擴充 工具箱
建立 WPF 工具箱控制項
擴充 Visual Studio 的其他部分
Windows Form 控制項開發的基本概念