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
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 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 FormsViene aggiunto un controllo utente, un
ProvideToolboxControlAttribute
RegistrationAttribute 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
In Esplora soluzioni, fare doppio clic su Counter.cs per aprirlo nel progettista.
Rimuovere il pulsante Click Here ! che è incluso per impostazione predefinita quando si aggiunge il modello di elemento Control della Toolbox di Windows Forms.
Dalla casella degli strumenti trascinare un controllo
Label
e quindi un controlloButton
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
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
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 lettura
Value
, 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 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.
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.
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; }
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
Premere F5 per Avvia 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, crea un progetto di applicazione Windows Forms .
In Esplora soluzioni, fare doppio clic su Form1.cs per aprirlo nel progettista, se non è già aperto.
Nella casella degli strumenti , il controllo
Counter
deve essere visualizzato nella sezione Generale.Trascina il controllo
Counter
nel modulo e quindi selezionalo. Le proprietàValue
,Message
eShowReset
verranno visualizzate nella finestra Proprietà insieme alle proprietà ereditate da UserControl.Impostare la proprietà
Message
suCount:
.Trascinare un controllo Button 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 del 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 di
if
/else
seguente 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 controllo
Counter
visualizza il testo seguente.Conteggio: 0
Selezionare Test.
Il contatore incrementa e Visual Studio visualizza una finestra di messaggio.
Chiudere la finestra di messaggio.
Il pulsante Reimposta scompare.
Selezionare Test fino a quando il contatore non raggiunge 5, chiudendo ogni volta le finestre di dialogo.
Viene visualizzato nuovamente il pulsante Reimposta.
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.