Créer un contrôle de boîte à outils Windows Forms
Le modèle d’élément de contrôle de boîte à outils Windows Forms inclus dans visual Studio Extensibility Tools (VS SDK), vous permet de créer un contrôle de boîte à outils qui est automatiquement ajouté lors de l’installation de l’extension. Cette procédure pas à pas montre comment utiliser le modèle pour créer un contrôle de compteur simple que vous pouvez distribuer à d’autres utilisateurs.
Créer le contrôle De boîte à outils
Le modèle de contrôle de boîte à outils Windows Forms crée un contrôle utilisateur non défini et fournit toutes les fonctionnalités requises pour ajouter le contrôle à la boîte à outils.
Créer une extension avec un contrôle de boîte à outils Windows Forms
Créez un projet VSIX nommé
MyWinFormsControl
. Vous trouverez le modèle de projet VSIX dans la boîte de dialogue Nouveau projet en recherchant « vsix ».Lorsque le projet s’ouvre, ajoutez un modèle d’élément de contrôle de boîte à outils Windows Forms nommé
Counter
. Dans le Explorateur de solutions, cliquez avec le bouton droit sur le nœud du projet, puis sélectionnez Ajouter>un nouvel élément. Dans la boîte de dialogue Ajouter un nouvel élément, accédez à Visual C#>Extensibilité et sélectionnez Contrôle de boîte à outils Windows FormsCela ajoute un contrôle utilisateur, un
ProvideToolboxControlAttribute
RegistrationAttribute contrôle pour placer le contrôle dans la boîte à outils et une entrée de ressource Microsoft.VisualStudio.ToolboxControl dans le manifeste VSIX pour le déploiement.
Créer une interface utilisateur pour le contrôle
Le Counter
contrôle nécessite deux contrôles enfants : un Label pour afficher le nombre actuel et un Button pour réinitialiser le nombre sur 0. Aucun autre contrôle enfant n’est requis, car les appelants incrémentent le compteur par programmation.
Pour créer l’interface utilisateur
Dans Explorateur de solutions, double-cliquez sur Counter.cs pour l’ouvrir dans le concepteur.
Supprimez le bouton Cliquer ici ! inclus par défaut lorsque vous ajoutez le modèle d’élément de contrôle de boîte à outils Windows Forms.
À partir de la boîte à outils, faites glisser un
Label
contrôle, puis unButton
contrôle situé en dessous vers l’aire de conception.Redimensionnez le contrôle utilisateur global sur 150, 50 pixels et redimensionnez le contrôle bouton sur 50, 20 pixels.
Dans la fenêtre Propriétés , définissez les valeurs suivantes pour les contrôles sur l’aire de conception.
Control Propriété valeur Label1
Texte "" Button1
Nom btnReset Button1
Texte Réinitialiser
Coder le contrôle utilisateur
Le Counter
contrôle expose une méthode pour incrémenter le compteur, un événement à lever chaque fois que le compteur est incrémenté, un bouton Réinitialiser et trois propriétés pour stocker le nombre actuel, le texte d’affichage et s’il faut afficher ou masquer le bouton Réinitialiser. L’attribut ProvideToolboxControl
détermine l’emplacement dans la boîte à outils où le contrôle Counter
s’affiche.
Pour coder le contrôle utilisateur
Double-cliquez sur le formulaire pour ouvrir son gestionnaire d’événements de chargement dans la fenêtre de code.
Au-dessus de la méthode du gestionnaire d’événements, dans la classe de contrôle, créez un entier pour stocker la valeur du compteur et une chaîne pour stocker le texte d’affichage, comme illustré dans l’exemple suivant.
int currentValue; string displayText;
Créez les déclarations de propriété publique suivantes.
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; } }
Les appelants peuvent accéder à ces propriétés pour obtenir et définir le texte d’affichage du compteur et afficher ou masquer le bouton Réinitialiser . Les appelants peuvent obtenir la valeur actuelle de la propriété en lecture seule
Value
, mais ils ne peuvent pas définir la valeur directement.Placez le code suivant dans l’événement
Load
pour le contrôle.private void Counter_Load(object sender, EventArgs e) { currentValue = 0; label1.Text = Message + Value; }
La définition du texte d’étiquette dans l’événement Load permet aux propriétés cibles de charger avant l’application de leurs valeurs. La définition du texte d’étiquette dans le constructeur entraînerait une étiquette vide.
Créez la méthode publique suivante pour incrémenter le compteur.
public void Increment() { currentValue++; label1.Text = displayText + Value; Incremented(this, EventArgs.Empty); }
Ajoutez une déclaration pour l’événement
Incremented
à la classe de contrôle.public event EventHandler Incremented;
Les appelants peuvent ajouter des gestionnaires à cet événement pour répondre aux modifications apportées à la valeur du compteur.
Revenez au mode Création et double-cliquez sur le bouton Réinitialiser pour générer le
btnReset_Click
gestionnaire d’événements. Ensuite, renseignez-le comme indiqué dans l’exemple suivant.private void btnReset_Click(object sender, EventArgs e) { currentValue = 0; label1.Text = displayText + Value; }
Immédiatement au-dessus de la définition de classe, dans la déclaration d’attribut
ProvideToolboxControl
, remplacez la valeur"MyWinFormsControl.Counter"
du premier paramètre par"General"
. Le nom du groupe d’éléments qui va héberger le contrôle dans la boîte à outilsest ainsi défini.L’exemple suivant illustre l’attribut
ProvideToolboxControl
et la définition de classe ajustée.[ProvideToolboxControl("General", false)] public partial class Counter : UserControl
Tester le contrôle
Pour tester un contrôle De boîte à outils , commencez par le tester dans l’environnement de développement, puis testez-le dans une application compilée.
Pour tester le contrôle
Appuyez sur F5 pour démarrer le débogage.
Cette commande génère le projet et ouvre une deuxième instance expérimentale de Visual Studio sur laquelle le contrôle est installé.
Dans l’instance expérimentale de Visual Studio, créez un projet d’application Windows Forms.
Dans Explorateur de solutions, double-cliquez sur Form1.cs pour l’ouvrir dans le concepteur s’il n’est pas déjà ouvert.
Dans la boîte à outils, le
Counter
contrôle doit être affiché dans la section Général .Faites glisser un
Counter
contrôle vers votre formulaire, puis sélectionnez-le. LesValue
propriétés sontShowReset
affichées dans la fenêtre Propriétés, ainsi que les propriétés héritées de UserControl.Message
Définissez la propriété
Message
surCount:
.Faites glisser un Button contrôle vers le formulaire, puis définissez le nom et les propriétés de texte du bouton
Test
sur .Double-cliquez sur le bouton pour ouvrir Form1.cs en mode code et créer un gestionnaire de clics.
Dans le gestionnaire de clics, appelez
counter1.Increment()
.Dans la fonction de constructeur, après l’appel à
InitializeComponent
, tapezcounter1``.``Incremented +=
, puis appuyez deux fois sur Tab .Visual Studio génère un gestionnaire au niveau du formulaire pour l’événement
counter1.Incremented
.Mettez en surbrillance l’instruction
Throw
dans le gestionnaire d’événements, tapezmbox
, puis appuyez deux fois sur Tab pour générer une zone de message à partir de l’extrait de code mbox.Sur la ligne suivante, ajoutez le bloc suivant
if
/else
pour définir la visibilité du bouton Réinitialiser.if (counter1.Value < 5) counter1.ShowReset = false; else counter1.ShowReset = true;
Appuyez sur F5.
Le formulaire s’ouvre. Le
Counter
contrôle affiche le texte suivant.Nombre : 0
Sélectionnez Test.
Le compteur incrémente et Visual Studio affiche une boîte de message.
Fermez la boîte de message.
Le bouton Réinitialiser disparaît.
Sélectionnez Test jusqu’à ce que le compteur atteigne 5 fermant les boîtes de message chaque fois.
Le bouton Réinitialiser réapparaît.
Sélectionnez Réinitialiser.
Le compteur est réinitialisé à 0.
Étapes suivantes
Quand vous générez un contrôle de boîte à outils , Visual Studio crée un fichier nommé nom_projet.vsix dans le dossier \bin\debug\ de votre projet. Vous pouvez déployer le contrôle en chargeant le fichier .vsix sur un réseau ou sur un site Web. Lorsqu’un utilisateur ouvre le fichier .vsix, le contrôle est installé et ajouté à la boîte à outils Visual Studio sur l’ordinateur de l’utilisateur. Vous pouvez également charger le fichier .vsix sur Visual Studio Marketplace afin que les utilisateurs puissent le trouver en parcourant les extensions d’outils>et la boîte de dialogue Mises à jour.