2010-07-22 2 views
2

Lorsque je coupe certaines commandes dans la fenêtre du concepteur et que je les colle dans un autre conteneur, les poignées disparaissent du code.Gère les mots-clés disparaissent sur le contrôle couper/coller

Si je btnOK sur le formulaire et cliquez sur évênements traités comme ceci:

Private Sub btnOK_Click(...) Handles btnOK.Click 

puis dans le concepteur je coupe le bouton et le coller ailleurs, poignées partie disparaît, la vie de la méthode.

Je comprends pourquoi cela se produit, couper comme ceci est comme supprimer le contrôle, mais supprimer silencieusement des parties du code n'est pas un bon comportement de l'éditeur.

Y a-t-il une solution de contournement, une préférence ou un plugin pour ajouter un avertissement avant de jouer avec mon code? Ou encore mieux, de garder des manutentionnaires et de me laisser partir?

+0

n'y a-t-il pas un moyen de dire VS NE PAS SUPPRIMER le mot-clé handles? Je n'ai pas pu remarquer la suppression et introduire plusieurs bugs! – vulkanino

Répondre

0

La meilleure méthode que j'ai trouvé à pas couper/coller du tout dans DotNet. Vous devriez pouvoir déplacer vos contrôles dans et hors des autres contrôles sans avoir besoin de couper/coller. Mettre au premier plan et envoyer à l'arrière sont également pratiques.

1

Lorsque vous supprimez un contrôle de votre formulaire, l'IDE supprime automatiquement toutes les poignées de votre code et laisse votre code intact:

// Previously: 
Private Sub btnOK_Click(...) Handles btnOK.Click 

    MessageBox.Show("hello world") 

End Sub 

// Now: 
Private Sub btnOK_Click(...) 

    MessageBox.Show("hello world") 

End Sub 

Lorsque vous collez votre contrôle et (dans le cas du bouton) double-cliquez dessus pour attacher du code, l'EDI détecte qu'il existe déjà une fonction appelée btnOK_Click et crée une nouvelle fonction pour vous, nommée btnOK_Click_1. C'est un comportement de conception que vous ne pouvez pas changer. Qu'est-ce que vous pouvez faire est de coller votre contrôle, puis allez dans la fenêtre des propriétés, passez aux événements, trouver l'événement Click et utilisez la liste déroulante pour sélectionner la fonction d'origine.

Alternativement, vous pouvez simplement aller à votre code et ajouter le mot-clé Handles btnOK.Click à la fin de la fonction d'origine.

1

Pour la prospérité, je voudrais ajouter un commentaire à ce problème. J'ai souvent besoin de remplacer les boutons dans mes systèmes. Cette «fonctionnalité» harcelante augmente toujours ma charge de travail. Je minimise l'effet en allant au code et en changeant toutes les occurrences de Handles avec 'Handles ainsi commentant cette déclaration. Je coupe les anciens boutons, colle les nouveaux boutons puis décommente l'instruction Handles. C'est un moyen rapide de contourner le problème et me permet de faire rapidement mes changements. J'espère que ça aide.