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 (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 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
Creare un progetto VSIX denominato
MyWinFormsControl
. È possibile trovare il modello di progetto VSIX nella finestra di dialogo Nuovo progetto , cercando "vsix".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 strumentiIn questo modo viene aggiunto un controllo utente, un oggetto
ProvideToolboxControlAttribute
RegistrationAttribute 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
In Esplora soluzioni fare doppio clic su Counter.cs per aprirlo nella finestra di progettazione.
Rimuovere il pulsante Fare clic qui ! incluso per impostazione predefinita quando si aggiunge il modello di elemento controllo casella degli strumenti Windows Form.
Dalla casella degli strumenti trascinare un
Label
controllo e quindi unButton
controllo sotto di esso nell'area di progettazione.Ridimensionare il controllo utente complessivo a 150, 50 pixel e ridimensionare il controllo pulsante a 50, 20 pixel.
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 (Ripristina)
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
Fare doppio clic sul modulo per aprire il gestore eventi di caricamento nella finestra del codice.
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;
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.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.
Creare il metodo pubblico seguente per incrementare il contatore.
public void Increment() { currentValue++; label1.Text = displayText + Value; Incremented(this, EventArgs.Empty); }
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.
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; }
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
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 .
Nell'istanza sperimentale di Visual Studio creare un progetto di applicazione Windows Form.
In Esplora soluzioni fare doppio clic su Form1.cs per aprirlo nella finestra di progettazione, se non è già aperto.
Nella casella degli strumenti il
Counter
controllo deve essere visualizzato nella sezione Generale.Trascinare un
Counter
controllo nel form e quindi selezionarlo. LeValue
proprietà ,Message
eShowReset
verranno visualizzate nella finestra Proprietà , insieme alle proprietà ereditate da UserControl.Impostare la proprietà
Message
suCount:
.Trascinare un Button controllo nel form e quindi impostare il nome e le proprietà di testo del pulsante su
Test
.Fare doppio clic sul pulsante per aprire Form1.cs nella visualizzazione codice e creare un gestore clic.
Nel gestore di clic chiamare
counter1.Increment()
.Nella funzione del costruttore, dopo la chiamata a
InitializeComponent
, digitarecounter1``.``Incremented +=
e quindi premere TAB due volte.Visual Studio genera un gestore a livello di modulo per l'evento
counter1.Incremented
.Evidenziare l'istruzione
Throw
nel gestore eventi, digitarembox
e quindi premere TAB due volte per generare una finestra di messaggio dal frammento di codice mbox.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;
Premere F5.
Verrà aperto il modulo. Il
Counter
controllo visualizza il testo seguente.Conteggio: 0
Selezionare Verifica.
Il contatore incrementa e Visual Studio visualizza una finestra di messaggio.
Chiudere la finestra di messaggio.
Il pulsante Reimposta scompare.
Selezionare Test finché il contatore non raggiunge 5 caselle di messaggio ogni volta.
Viene visualizzato nuovamente il pulsante Reimposta .
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 e aggiornamenti degli strumenti>.