0
votes

Quoi utiliser Sub Nex (), I.e. InitializEcomponent, pour?

Je comprends ce que le initializececomponent () 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 () Constructeur à un formulaire et ce que vous allez ajouter à cela par rapport à la charge chargée () SUB.

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 () 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?


3 Réponses :


-1
votes

Si vous parlez de formulaires Windows, j'ai constaté qu'il est préférable de faire votre configuration utilisateur dans charger plutôt que dans le constructeur ( nouveau ), car Parfois, si vous le faites dans Nouveau , certaines choses ne seront pas encore initialisées et vous rencontrerez des exceptions de référence NULLL.


1 commentaires

Visual Studio élimine presque tout risque si vous faites attention: Sub NOUVEL NOUVEAU () 'Cet appel est requis par le concepteur. initializecomonent () < B> 'ajoutez une initialisation après l'appel initializececomponent ().



1
votes

L'événement Charger est tiré juste avant que le formulaire soit affiché pour la première fois.

... 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 à l'écran.

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 Evénement 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.


1 commentaires

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é?



0
votes

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)

2 commentaires

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 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.