Je comprends ce que le J'ai trouvé que c'était un bon endroit pour mettre mes réglages de backcolor et de fondcolor, car ils sont préférés de l'utilisateur et stockés dans des paramètres. Quoi d'autre devrais-je mettre là-bas? J'ai toujours utilisé la chargement initializececomponent () code> est en arrière-plan - il crée le formulaire et toutes les commandes ajoutées dans le concepteur. Cependant, ce que je n'ai pas trouvé, c'est que lorsque vous ajouteriez un
Sub NOUVEL NEW () CODE> Constructeur à un formulaire et ce que vous allez ajouter à cela par rapport à la charge
chargée () code> SUB. p>
() code> sous pour faire un travail avec des contrôles. Exemples: Ajout de gestionnaires, chargement de comboboxes, réglage des colonnes DGV, chargement de données de données) Devrais-je le faire dans le nouveau constructeur? Fait-il une différence? P>
3 Réponses :
Si vous parlez de formulaires Windows, j'ai constaté qu'il est préférable de faire votre configuration utilisateur dans charger code> plutôt que dans le constructeur (
nouveau code>), car Parfois, si vous le faites dans
Nouveau code>, certaines choses ne seront pas encore initialisées et vous rencontrerez des exceptions de référence NULLL. P>
Visual Studio élimine presque tout risque si vous faites attention: Sub NOUVEL NOUVEAU () CODE>
'Cet appel est requis par le concepteur. Code>
initializecomonent () code> < B>
'ajoutez une initialisation après l'appel initializececomponent (). code> b>
L'événement code> Charger code> est tiré juste avant que le formulaire soit affiché pour la première fois. P>
... Mais cela pourrait ne pas être tout de suite. Il est possible - commun, même dans certains environnements - de créer un formulaire et de la disposer de la fonction de code bien avant que le formulaire ne soit jamais affiché à l'écran. Le formulaire pourrait même jamais em> à l'écran. p>
Prenez, par exemple, un formulaire de réglages, où les propriétés sont définies dans la classe de la carte des champs de préférence d'utilisateur sur le formulaire. Quelqu'un peut décider de créer une application qui ressemble directement à une instance d'objet de formulaire connue pour lire les préférences, mais si l'utilisateur ne va jamais changer quelque chose que le formulaire ne peut jamais s'afficher à l'écran, et que la chargement code> Evénement CODE> Ne jamais tirer. Ce n'est qu'un exemple, et si c'est une bonne idée, c'est une autre histoire; Il suffit de savoir que je l'ai vu arriver en vrai code. P>
Je n'avais jamais pensé avoir une forme "chargée" mais pas visible auparavant. C'est un concept intéressant. Je pense que ce serait une bonne idée de faire de nombreuses formes dans une application. Dites que j'ai une forme principale, puis 8 formulaires possibles que tous ont des contrôles à remplir. Serait-il efficace de "charger" tous ces formulaires au moment de l'exécution, puis montrent simplement le formulaire quand il est appelé?
Cependant, ce que je n'ai pas trouvé, c'est quand vous ajouteriez un sous-produit public Nouveau constructeur à une forme et ce que vous allez ajouter à cela par rapport à la Charge () sous. P>
Voici un exemple de réponse (le noyau?) Question du vôtre. Supposons que vous ayez un formulaire pour éditer un produit. Appelons-le productDItform. Votre cas d'utilisation pour ce formulaire consiste à modifier les valeurs d'un produit existant dans votre système. Comment diriez-vous de cette forme quel produit modifier? En nécessitant le passage d'un objet de produit lorsque vous instaniez le formulaire. Par exemple, dans la page Code de ProducationDItform: P>
Dim p As New Product p.ID = 1234 p.Name = "Widget" p.Cost = "10.00" p.SalePrice = "30.00" Dim f As New ProductEditForm(p)
Je suis l'un de ces programmeurs qui passent des variables entre les formes de manière pas si bonne. Évidemment parce que je n'avais pas su comment utiliser correctement la nouvelle fonction (). Je vais passer par cette application et mettre à jour cela si nécessaire maintenant!
Et ce n'est pas seulement limité aux formes. Vous pouvez utiliser des objets (comme produit code> dans l'exemple ci-dessus) et transmettez-le à d'autres niveaux de votre application (couche d'entreprise, couche d'accès aux données, etc.). Il est plus facile de lire et de suivre le code lorsque les données sont enveloppées dans des objets.
Stackoverflow.com/Questtions/2521322/...