Condividi tramite


Creare un controllo casella degli strumenti di Windows Form

Il modello di elemento controllo casella degli strumenti di Windows Form incluso in Visual Studio Extensibility Tools (VSSDK) consente di creare un controllo Casella degli strumenti che viene aggiunto automaticamente quando viene installata l'estensione. 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 di 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 di casella degli strumenti di Windows Forms

  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 della Casella degli Strumenti di Windows Forms denominato Counter. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo del progetto e selezionare Aggiungi>Nuovo elemento. Nella finestra di dialogo Aggiungi nuovo elemento , passare a Visual C#>Estendibilità e selezionare Controllo casella degli strumenti di Windows Forms

  3. Viene aggiunto un controllo utente, un ProvideToolboxControlAttributeRegistrationAttribute per posizionare il controllo nel Toolbox , e un'entrata Microsoft.VisualStudio.ToolboxControl Asset nel manifesto VSIX per la distribuzione.

Creare un'interfaccia utente per il controllo

Il controllo Counter 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 dei figli perché i chiamanti incrementeranno il contatore tramite codice.

Per compilare l'interfaccia utente

  1. In Esplora soluzioni, fare doppio clic su Counter.cs per aprirlo nel progettista.

  2. Rimuovere il pulsante Click Here ! che è incluso per impostazione predefinita quando si aggiunge il modello di elemento Control della Toolbox di Windows Forms.

  3. Dalla casella degli strumenti trascinare un controllo Label e quindi un controllo Button 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 testo ""
    Button1 Nome btnReset
    Button1 Testo Resettare

Codificare il controllo utente

Il controllo Counter espone 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 Reset. L'attributo ProvideToolboxControl determina il punto in cui il controllo Counter apparirà nella casella degli strumenti .

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 lettura Value, 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 Label nell'evento Load consente di caricare le proprietà di destinazione prima dell'applicazione dei valori. L'impostazione del testo dell'etichetta nel costruttore risulterebbe in 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. Torna alla visualizzazione struttura e fai doppio clic sul pulsante Reimposta per generare il gestore eventi btnReset_Click. 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 della classe, nella dichiarazione dell'attributo ProvideToolboxControl modificare il valore del primo parametro da "MyWinFormsControl.Counter" a "General". In questo modo viene impostato il nome del gruppo di elementi che ospiterà il controllo nella casella degli strumenti .

    L'esempio seguente illustra l'attributo ProvideToolboxControl e la definizione della classe modificata.

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

Testare il controllo

Per testare un controllo della casella degli strumenti , provalo prima nell'ambiente di sviluppo e quindi in un'applicazione già compilata.

Per testare il controllo

  1. Premere F5 per Avvia 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, crea un progetto di applicazione Windows Forms .

  3. In Esplora soluzioni, fare doppio clic su Form1.cs per aprirlo nel progettista, se non è già aperto.

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

  5. Trascina il controllo Counter nel modulo e quindi selezionalo. Le proprietà Value, Messagee ShowReset verranno visualizzate nella finestra Proprietà insieme alle proprietà ereditate da UserControl.

  6. Impostare la proprietà Message su Count:.

  7. Trascinare un controllo Button 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 del 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 di if/else seguente 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 controllo Counter visualizza il testo seguente.

    Conteggio: 0

  14. Selezionare Test.

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

  15. Chiudere la finestra di messaggio.

    Il pulsante Reimposta scompare.

  16. Selezionare Test fino a quando il contatore non raggiunge 5, chiudendo ogni volta le finestre di dialogo.

    Viene visualizzato nuovamente il pulsante Reimposta.

  17. Selezionare Reimposta.

    Il contatore viene reimpostato su 0.

Passaggi successivi

Quando si compila un controllo casella degli strumenti di, Visual Studio crea un file denominato ProjectName.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 di 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 su Visual Studio Marketplace, così che gli utenti possano trovarlo sfogliando nella finestra di dialogo Strumenti>Estensioni e Aggiornamenti.