Creare un controllo casella degli strumenti di Windows Form

Il modello di elemento controllo casella degli strumenti Windows Form incluso in Visual Studio Extensibility Tools (VS SDK) consente di creare un controllo Casella degli strumenti aggiunto automaticamente quando l'estensione è installata. Questa procedura dettagliata illustra come usare il modello per creare un semplice controllo contatore che è possibile distribuire ad altri utenti.

Creare il controllo casella degli strumenti

Il modello controllo casella degli strumenti Windows Form crea un controllo utente non definito e fornisce tutte le funzionalità necessarie per aggiungere il controllo alla casella degli strumenti.

Creare un'estensione con un controllo casella degli strumenti di Windows Form

  1. Creare un progetto VSIX denominato MyWinFormsControl. È possibile trovare il modello di progetto VSIX nella finestra di dialogo Nuovo progetto , cercando "vsix".

  2. Quando si apre il progetto, aggiungere un modello di elemento controllo casella degli strumenti Windows Form denominato Counter. Nella Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo del progetto e scegliere Aggiungi>nuovo elemento. Nella finestra di dialogo Aggiungi nuovo elemento passare a Visual C#>Estendibilità e selezionare Windows Form Controllo casella degli strumenti

  3. In questo modo viene aggiunto un controllo utente, un oggetto ProvideToolboxControlAttributeRegistrationAttribute per posizionare il controllo nella casella degli strumenti e una voce asset Microsoft.VisualStudio.ToolboxControl nel manifesto VSIX per la distribuzione.

Creare un'interfaccia utente per il controllo

Il Counter controllo richiede due controlli figlio: un Label per visualizzare il conteggio corrente e un Button per reimpostare il conteggio su 0. Non sono necessari altri controlli figlio perché i chiamanti incrementeranno il contatore a livello di codice.

Per creare l'interfaccia utente

  1. In Esplora soluzioni fare doppio clic su Counter.cs per aprirlo nella finestra di progettazione.

  2. Rimuovere il pulsante Fare clic qui ! incluso per impostazione predefinita quando si aggiunge il modello di elemento controllo casella degli strumenti Windows Form.

  3. Dalla casella degli strumenti trascinare un Label controllo e quindi un Button controllo sotto di esso nell'area di progettazione.

  4. Ridimensionare il controllo utente complessivo a 150, 50 pixel e ridimensionare il controllo pulsante a 50, 20 pixel.

  5. Nella finestra Proprietà impostare i valori seguenti per i controlli nell'area di progettazione.

    Controllo Proprietà valore
    Label1 Text ""
    Button1 Nome btnReset
    Button1 Text Reset

Codificare il controllo utente

Il Counter controllo esporrà un metodo per incrementare il contatore, un evento da sollevare ogni volta che il contatore viene incrementato, un pulsante Reset e tre proprietà per archiviare il conteggio corrente, il testo visualizzato e se visualizzare o nascondere il pulsante Reimposta . L'attributo ProvideToolboxControl determina la posizione nella casella degli strumenti in cui verrà visualizzato il controllo Counter .

Per codificare il controllo utente

  1. Fare doppio clic sul modulo per aprire il gestore eventi di caricamento nella finestra del codice.

  2. Sopra il metodo del gestore eventi, nella classe di controllo creare un numero intero per archiviare il valore del contatore e una stringa per archiviare il testo visualizzato, come illustrato nell'esempio seguente.

    int currentValue;
    string displayText;
    
  3. Creare le dichiarazioni di proprietà pubbliche seguenti.

    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; }
    }
    
    

    I chiamanti possono accedere a queste proprietà per ottenere e impostare il testo visualizzato del contatore e per mostrare o nascondere il pulsante Reimposta . I chiamanti possono ottenere il valore corrente della proprietà di sola Value lettura, ma non possono impostare direttamente il valore.

  4. Inserire il codice seguente nell'evento Load per il controllo .

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

    L'impostazione del testo Etichetta nell'evento consente di caricare le proprietà di destinazione prima dell'applicazione Load dei relativi valori. L'impostazione del testo Label nel costruttore genera un'etichetta vuota.

  5. Creare il metodo pubblico seguente per incrementare il contatore.

    public void Increment()
    {
        currentValue++;
        label1.Text = displayText + Value;
        Incremented(this, EventArgs.Empty);
    }
    
    
  6. Aggiungere una dichiarazione per l'evento Incremented alla classe del controllo.

    public event EventHandler Incremented;
    

    I chiamanti possono aggiungere gestori a questo evento per rispondere alle modifiche nel valore del contatore.

  7. Tornare alla visualizzazione struttura e fare doppio clic sul pulsante Reimposta per generare il btnReset_Click gestore eventi. Compilare quindi come illustrato nell'esempio seguente.

    private void btnReset_Click(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = displayText + Value;
    }
    
    
  8. Immediatamente sopra la definizione di classe, nella dichiarazione dell'attributo ProvideToolboxControl , modificare il valore del primo parametro da "MyWinFormsControl.Counter" a "General". In questo modo si imposta il nome del gruppo di elementi che ospiterà il controllo nella casella degli strumenti.

    L'esempio seguente mostra l'attributo ProvideToolboxControl e la definizione di classe modificata.

    [ProvideToolboxControl("General", false)]
    public partial class Counter : UserControl
    

Testare il controllo

Per testare un controllo Casella degli strumenti , testarlo prima nell'ambiente di sviluppo e quindi testarlo in un'applicazione compilata.

Per testare il controllo

  1. Premere F5 per avviare il debug.

    Questo comando compila il progetto e apre una seconda istanza sperimentale di Visual Studio in cui è installato il controllo .

  2. Nell'istanza sperimentale di Visual Studio creare un progetto di applicazione Windows Form.

  3. In Esplora soluzioni fare doppio clic su Form1.cs per aprirlo nella finestra di progettazione, se non è già aperto.

  4. Nella casella degli strumenti il Counter controllo deve essere visualizzato nella sezione Generale.

  5. Trascinare un Counter controllo nel form e quindi selezionarlo. Le Valueproprietà , Messagee ShowReset verranno visualizzate nella finestra Proprietà , insieme alle proprietà ereditate da UserControl.

  6. Impostare la proprietà Message su Count:.

  7. Trascinare un Button controllo nel form e quindi impostare il nome e le proprietà di testo del pulsante su Test.

  8. Fare doppio clic sul pulsante per aprire Form1.cs nella visualizzazione codice e creare un gestore clic.

  9. Nel gestore di clic chiamare counter1.Increment().

  10. Nella funzione del costruttore, dopo la chiamata a InitializeComponent, digitare counter1``.``Incremented += e quindi premere TAB due volte.

    Visual Studio genera un gestore a livello di modulo per l'evento counter1.Incremented .

  11. Evidenziare l'istruzione Throw nel gestore eventi, digitare mboxe quindi premere TAB due volte per generare una finestra di messaggio dal frammento di codice mbox.

  12. Nella riga successiva aggiungere il blocco seguente if/else per impostare la visibilità del pulsante Reimposta.

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

    Verrà aperto il modulo. Il Counter controllo visualizza il testo seguente.

    Conteggio: 0

  14. Selezionare Verifica.

    Il contatore incrementa e Visual Studio visualizza una finestra di messaggio.

  15. Chiudere la finestra di messaggio.

    Il pulsante Reimposta scompare.

  16. Selezionare Test finché il contatore non raggiunge 5 caselle di messaggio ogni volta.

    Viene visualizzato nuovamente il pulsante Reimposta .

  17. Selezionare Reimposta.

    Il contatore viene reimpostato su 0.

Passaggi successivi

Quando si crea un controllo della casella degli strumenti , Visual Studio crea un file denominato NomeProgetto.vsix nella cartella \bin\debug\ del progetto. È possibile distribuire il controllo caricando il file vsix in una rete o in un sito Web. Quando un utente apre il file vsix, il controllo viene installato e aggiunto alla casella degli strumenti di Visual Studio nel computer dell'utente. In alternativa, è possibile caricare il file vsix in Visual Studio Marketplace in modo che gli utenti possano trovarlo esplorando la finestra di dialogo Estensioni>strumenti e Aggiornamenti.