2008-12-01 6 views
0

Je me demandais simplement comment les autres fonctionnent avec ce type de code WinForm en C#. Disons que j'ai un formulaire permet de l'appeler Form1. Et j'ai un DataGridView appelé dgvMain..NET C# - Formulaire par rapport aux fichiers de code du concepteur pour le câblage d'événements

Où voulez-vous mettre le code:

this.dgvMain.CellEndEdit += new DataGridViewCellEventHandler(dgvMain_CellEndEdit); 

-vous le mettre dans le code Form1 ou le code concepteur Form1? Est-ce que ce code de "câblage d'événement" devrait aller dans la méthode Form1_Load?

La raison pour laquelle je suis poser est ... si vous double-cliquez sur DataGridView l'IDE insère le code: dans le code concepteur

this.dgvMain.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvMain_CellContentClick); 

. Votre code de «câblage d'événement» doit-il être à deux endroits?

Répondre

0

J'utilise le Designer pour tous les événements liés à Component.

J'utilise le code pour tous les événements d'objet.

1

Ceci est un sujet sensible. Dans 1.1, là où les régions pour cela dans vos fichiers de fichiers, mais la plupart du temps, le code serait écrit par le concepteur. Je parle d'experiance webforms, mais je voudrais seulement comprendre que ce serait la même chose ailleurs. Maintenant, vous mettez réellement le nom de l'événement dans le formulaire lui-même (c'est l'une des propriétés sur le concepteur de formulaires), et le générateur de code poussera les trucs du gestionnaire d'événements + = dans la classe partielle. Je déteste ça de cette façon, mais c'est ce que c'est.

2

La réponse courte est oui.

Une réponse plus longue est que .designer.cs est là pour le code généré par le concepteur. Si vous y mettez votre propre code, il a une chance d'être écrasé, ce qui détraque le temps de conception dans Visual Studio, et réduit la maintenabilité parce que personne ne s'attend à ce que le code personnalisé soit là.

+0

C'est ce dont je m'inquiète ... Je déteste mettre le code associé à deux endroits. Mais je déteste le code écrasé par codegen plus! – BuddyJoe

Questions connexes