personnalisé constructeurs pour les formulaires en vb.net: les Meilleures pratiques
Je suis assez nouveau à vb.net et windows les formes de développement dans son ensemble, de sorte que cela peut être très basique, mais voilà.
Je voudrais ouvrir un nouveau formulaire à partir d'une autre forme, et de passer à quelque objet sélectionné à partir d'un contrôle sur le formulaire à la nouvelle forme. La meilleure façon de le faire, je pensais, était aussi un paramètre à l'formes constructeur. Maintenant, je sais que visual studio GUI crée des classes partielles pour mes formes, qui détiennent les propriétés que je peux les glisser sur il y a dans le concepteur. Je suppose qu'il est également titulaire d'un constructeur par défaut. Puisque l'on peut faire toutes sortes de choses, ce qui est nécessaire pour initialiser le formulaire, j'ai pensé que je devrais l'appeler à partir de mon constructeur personnalisé ala
public sub new(byval my_parameter as Foo)
Me.new()
Me.my_parameter = my_parameter
do_some_initialisation()
end sub
Qui, manifestement, n'est-ce pas, car il ne peut pas trouver un constructeur par défaut. La chose est, visual studio passe par de grands efforts pour m'empêcher de voir le constructeur généré, donc je sais comment y accéder. Cela me mène à croire que je suis en train de faire fausse route, et sur une voie différente, comme le chemin que vous êtes contraints à est généralement la chose la plus sensée à faire, j'ai généralement trouver beaucoup trop tard.
Alors, comment dois-je faire quelque chose comme ça?
OriginalL'auteur Martijn | 2010-11-01
Vous devez vous connecter pour publier un commentaire.
C'est assez simple exemple.
Ce qui se passe dans votre "main" (celle que vous souhaitez appeler votre nouveau formulaire à partir de):
form2Name(item)
se décompose comme "form2Name" est le nom de la forme que vous souhaitez ouvrir et "point" est le paramètre à passer.Dans votre nouveau formulaire (form2Name) ajouter ce code:
Vous pouvez faire tout ce que vous avez besoin dans votre formulaire.
Espérons que cette aide.
OriginalL'auteur wergeld
Pour VB.Net je pense que l'appel, vous êtes après est
Combinding ce avec la aswer ci-dessous: Si j'appelle
MyBase.New()
, dois-je appelerInitializeComponent()
?Le formulaire par défaut constructeur appelle normalement. TBH vous code est très bien si vous venez de supprimer la Moi.nouvelles (les) ligne. J'étais tout simplement en montrant comment appeler un constructeur de base correctement.
OriginalL'auteur Chris W
Votre forme dérivée de la classe hérite automatiquement le constructeur par défaut pour le Système.De Windows.Les formulaires.Forme. Ce constructeur par défaut est automatiquement invoqué avant votre dérivés constructeur code s'exécute. La raison pour laquelle vous ne pouvez pas trouver un code pour le constructeur par défaut est parce que la classe dérivée ne se spécialisent pas le constructeur par défaut. Si vous souhaitez définir votre propre constructeur par défaut, vous pouvez. Vous pouvez également définir un constructeur sans paramètres.
Vous code devrait fonctionner correctement si vous supprimez cette ligne:
OriginalL'auteur Paul Keister