共用方式為


逐步解說: 建立 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 工具箱控制項範本會建立一個未定義的使用者控制項,並提供功能來新增控制項所需的所有工具箱

若要建立專案

  1. 在 [檔案] 功能表上,按一下 [新增],然後按一下 [專案]。

  2. 新的專案 對話方塊後,在 安裝的範本,展開您偏好的程式設計語言的節點,然後選取 擴充性。 在 [專案類型清單中,選取 [ Windows Form 工具箱控制項

  3. 名稱方塊中,輸入您想要用於專案的名稱。 (此逐步解說中使用的名稱, 計數器。) 按一下 [確定]。

    這會建立包含使用者控制項,放置在控制項屬性的方案工具箱,和部署資訊清單的 VSIX。 名稱 方塊設定方案的名稱和命名空間的名稱,但它並不會設定控制項的名稱,在所顯示的樣子 工具箱。 您將設定,稍後在逐步解說。

建置使用者介面控制項

計數器控制項需要兩個的子控制項: Label以顯示目前的計數,以及Button重設為 0 的計數。 因為呼叫端遞增計數器的程式設計的方式,就需要其他的子控制項。

若要建立使用者介面

  1. 方案總管] 中,連按兩下以開啟設計工具] 中的 ToolboxControl.cs。

  2. 工具箱,拖曳 標籤控制項至設計介面。

  3. 調整為 150 x 50 像素,使用者控制項的大小和縮放按鈕以 50 x 20 像素。

  4. 屬性 ] 視窗中,設定下列的值在設計介面上的控制項。

    控制項

    屬性

    Label1

    文字

    ""

    Button1

    名稱

    btnReset

    Button1

    文字

    重設

程式碼撰寫使用者控制項

計數器 控制項都會公開 (expose) 的方法,以逐步遞增計數器,而引發的事件,此計數器會遞增,每當 重設 按鈕和三個屬性來儲存目前的計數、 顯示文字,以及是否要顯示或隱藏 重設 ] 按鈕。 ProvideTolboxControl屬性會決定在何處工具箱計數器 ,會出現控制項。

使用者控制項的程式碼

  1. 連按兩下表單,在程式碼] 視窗中開啟它的 load 事件處理常式。

  2. 上述事件處理常式中,建立要儲存的計數器值的字串和儲存顯示的文字,如下列範例所示的整數。

    int currentValue;
    string displayText;
    
  3. 建立下列的公用屬性宣告。

    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屬性,但它們無法設定的值直接。

  4. 將下列程式碼放在Load控制項的事件。

    private void ToolboxControl_Load(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = Message + Value;
    }
    

    設定標籤文字Load事件可讓目標屬性,以載入,才能將套用其值。 在建構函式中設定的標籤文字,將會產生空的標籤。

  5. 建立下列的公用方法,以逐步遞增計數器。

    public void Increment()
    {
        currentValue++;
        label1.Text = displayText + Value;
        Incremented(this, EventArgs.Empty);
    }
    
  6. 加入宣告Incremented事件。

    public event EventHandler Incremented;
    

    呼叫者可以將處理常式加入至這個事件,以因應變更計數器的值。

  7. 返回 [設計] 檢視,按兩下 重設按鈕,以產生btnReset_Click事件處理常式,然後填入在下列範例所示。

    private void btnReset_Click(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = displayText + Value;
    }
    
  8. 在類別定義中,以滑鼠右鍵按一下類別名稱,請按一下重構,按一下 [ 重新命名,然後將變更為類別名稱 計數器。 這是會顯示在 [名稱工具箱

  9. 正上方的類別定義中,在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;
        }
    }
    

測試控制項

若要測試工具箱控制第一次在開發環境中進行測試,然後在已編譯的應用程式中進行測試。

若要測試控制項

  1. 按 F5。

    這會在建置專案,並開啟已安裝該控制項的 Visual Studio 的第二個執行個體。

  2. 在 Visual Studio 的新執行個體,建立一個 Windows Form 專案。

  3. 方案總管] 中,連按兩下,在設計工具中開啟 Form1.cs。

  4. 工具箱、 計數器 控制項應該會顯示在 一般一節。

  5. 拖曳計數器控制項加入表單,然後再選取。 Value, Message,以及ShowReset屬性會顯示在屬性加上繼承自屬性] 視窗, UserControl

  6. 設定Message屬性,以計數:。

  7. 拖曳Button控制項加入表單,並依此設定按鈕的名稱和文字屬性測試。

  8. 按兩下按鈕,在 [程式碼] 檢視中開啟 Form1.cs,再建立 click 處理常式。

  9. Click 處理常式中,在呼叫counter1.Increment()。

  10. 在建構函式函式呼叫之後, InitializeComponent,型別 Counter1.Incremented = ,然後按 TAB 鍵兩次。

    Visual Studio 會產生表單層級的處理常式Counter1.Incremented事件。

  11. 反白顯示Throw事件處理常式,而型別中的陳述式 mbox,然後按兩次以產生一個訊息方塊,從 mbox 的程式碼片段] 索引標籤。

  12. 在下一行中,加入下列if/else區塊,若要設定的可見性重設 ] 按鈕。

    if (counter1.Value < 5) counter1.ShowReset = false;
    else counter1.ShowReset = true;
    
  13. 按 F5。

    表單隨即開啟。 計數器控制項就會顯示下列文字。

    計數: 0

  14. 按一下 [測試]。

    計數器的增量,Visual Studio 就會顯示訊息方塊。

  15. 關閉訊息方塊。

    重設按鈕就會消失。

  16. 按一下 [ 測試 ,直到計數器到達 5,然後關閉訊息方塊。

    重設 re-appears 的按鈕。

  17. 按一下 [重設]。

    此計數器會重設為 0

後續步驟

當您建置工具箱 控制項,Visual Studio 會建立一個名為檔案 ProjectName.vsix 專案的 [\bin\debug\] 資料夾中。 您可以將控制項部署上載到網路或網站的.vsix 檔案。 當使用者開啟.vsix 檔案時,控制項已安裝並加入至 Visual Studio 工具箱在使用者電腦上。 或者,您可以上載.vsix Visual Studio 庫 Web 站台,讓使用者可以藉由在瀏覽找到它 擴充管理員

請參閱

工作

逐步解說: 建立 WPF 工具箱控制項

概念

Windows Form 控制項開發的基本概念

其他資源

工具箱 (Visual Studio SDK)

使用者介面