Un UserControl est essentiellement juste une autre classe. Il hérite de Contrôle, de sorte que vous pouvez faire toutes sortes de choses que vous faites avec les contrôles de, mais sinon, c'est juste une classe. Ainsi, pour ajouter le contrôle usercontrol dynamique à votre formulaire, vous ne les suivants:
Créer une nouvelle instance de votre contrôle. Comme Dim X As New MyControl()
Ajouter le contrôle de votre forme comme un objet enfant à tout ce récipient que vous voulez. Comme Me.MyGreatTabPage.Controls.Add(X). Vous pouvez également ajouter directement à votre formulaire de trop, parce que une forme est également un conteneur.
Définir les contrôles de position à l'intérieur du conteneur. Que serait réglage X.Location et X.Size.
Rappelez-vous que chaque instance que vous créez avec New MyControl() sera séparé MyControl. Ne faites pas l'erreur, à plusieurs reprises, la création de nouveaux champs et de les placer les uns sur les autres en quelque sorte. De créer et de placer une fois le contrôle. L'affecter à une variable membre de votre formulaire, et quand vous devez travailler avec elle, l'utilisation de cette variable.
+1 pour me rappeler de ne pas créer le contrôle à chaque fois qu'une page de l'onglet modifications. Est-il possible d'ajouter un contrôle de type spécifié avec de la ficelle au lieu de créer une nouvelle instance avec son constructeur? Si le nombre de possibilités est limité, alors vous pouvez utiliser un SELECT CASE déclaration. Sinon, vous avez besoin de ce qui est connu comme "reflet". C'est une longue histoire.
Puis vient la partie difficile avec piégeage événements en elle depuis qu'il a besoin d'être rechargée à chaque demande. J'utilise normalement un ViewState drapeau pour indiquer qu'il s'est déjà chargé et la vérification de l'existence de cet indicateur pour voir si je dois le recharger à nouveau dans OnInit
Dim newControl As UserControl = LoadControl("~/Controls/DRQ/Create/UCNewControl.ascx")Me.panelHolder1.Controls.Add(newControl)
Un UserControl est essentiellement juste une autre classe. Il hérite de Contrôle, de sorte que vous pouvez faire toutes sortes de choses que vous faites avec les contrôles de, mais sinon, c'est juste une classe. Ainsi, pour ajouter le contrôle usercontrol dynamique à votre formulaire, vous ne les suivants:
Dim X As New MyControl()
Me.MyGreatTabPage.Controls.Add(X)
. Vous pouvez également ajouter directement à votre formulaire de trop, parce que une forme est également un conteneur.X.Location
etX.Size
.Rappelez-vous que chaque instance que vous créez avec
New MyControl()
sera séparé MyControl. Ne faites pas l'erreur, à plusieurs reprises, la création de nouveaux champs et de les placer les uns sur les autres en quelque sorte. De créer et de placer une fois le contrôle. L'affecter à une variable membre de votre formulaire, et quand vous devez travailler avec elle, l'utilisation de cette variable.Est-il possible d'ajouter un contrôle de type spécifié avec de la ficelle au lieu de créer une nouvelle instance avec son constructeur?
Si le nombre de possibilités est limité, alors vous pouvez utiliser un
SELECT CASE
déclaration. Sinon, vous avez besoin de ce qui est connu comme "reflet". C'est une longue histoire.OriginalL'auteur Vilx-
Je pense que ce que vous cherchez est écrit: ce.Les contrôles.Ajouter(myControl) en C#. Je suis sûr que c'est très similaire dans VB?
OriginalL'auteur Commander Keen
Puis vient la partie difficile avec piégeage événements en elle depuis qu'il a besoin d'être rechargée à chaque demande. J'utilise normalement un ViewState drapeau pour indiquer qu'il s'est déjà chargé et la vérification de l'existence de cet indicateur pour voir si je dois le recharger à nouveau dans OnInit
OriginalL'auteur Thomas Hansen
OriginalL'auteur Christian Payne
C'est une méthode pour l'ajout de deux ou plus:
OriginalL'auteur Viacheslav