Visual Studio: définir le code d'affichage par défaut

142

Existe-t-il un moyen de faire en sorte que Visual Studio affiche le code d'un contrôle / formulaire par défaut au lieu du concepteur? J'ai tendance à ne pas être fan des designers car ils ajoutent des ballonnements.

smack0007
la source
Je comprends que vous vouliez faire de View Code la valeur par défaut, mais je ne vois pas ce que cela a à voir avec "ballonnement". Cependant, vous modifiez le code, il "finit au même endroit" (comme disait ma mère)
JoelFan
Le concepteur affecte presque toutes les propriétés de chaque élément de formulaire, même s'il s'agit de la valeur par défaut. Vous avez beaucoup de code juste pour faire des choses simples. Je comprends qu'il existe un cas d'utilisation, mais si j'ai juste un formulaire simple avec quelques boutons, je peux le coder à la main.
smack0007
1
@SplashHit: mon plus gros problème avec l'ouverture du code en mode conception par défaut est que VS convertira toute classe c # qui a l'attribut [RunInstaller] en une classe de concepteur
galets
1
J'ai utilisé cette astuce pour les fichiers ASPX. Cela m'ennuie énormément d'avoir le concepteur ouvert pour deux raisons: c'est très lent, comme la plupart des composants de l'interface graphique, et c'est beaucoup plus lent à travailler (je peux généralement taper le balisage plus rapidement [et plus proprement] que je ne pourrais trouver les contrôles) dans la boîte à outils ou le concepteur et définissez les propriétés dans le volet des propriétés).
bambams

Réponses:

251

Faites un clic droit sur un fichier et sélectionnez "Ouvrir avec ..."

Sélectionnez «CSharp Editor», puis cliquez sur «Définir par défaut».

Jon Skeet
la source
5
MERCI! Cela me rendait fou.
DougN
Je suis à peu près certain que je n'avais pas l'option "Ouvrir avec ..." jusqu'à ce que j'aie installé TF Power Tools.
Déçu le
Ces choses les plus simples nous font parfois allusion ... mais merci, cela me rendait aussi dingue.
Lorenz03Tx
1
@ user16547: Eh bien, cherchez tout ce qui ressemble, en gros. Si vous n'arrivez nulle part, posez une nouvelle question avec plus de détails.
Jon Skeet
1
@JonSkeet En fait, je regardais la mauvaise question. Je voulais trouver un moyen d'accéder directement au fichier .cs plutôt qu'au .aspx. Lorsque je clique avec le bouton droit sur le fichier .aspx et que je vais dans "Ouvrir avec", il n'y a pas d'éditeur CSharp, mais c'est probablement parce que c'est une situation différente.
async
8

Décorez votre classe avec [System.ComponentModel.DesignerCategory ("")], par exemple:

[System.ComponentModel.DesignerCategory("")]
public class MySpecialButton : System.Windows.Forms.Button
{
}
gmb
la source
Oui! C'est la meilleure solution, lorsque vous souhaitez le définir uniquement pour une classe, pas comme paramètre GLOBAL. Le plus drôle est que cela ne fonctionne pas si vous écrivez [DesignerCategory ("")] et ajoutez en utilisant System.ComponentModel.
Szybki
Cela devrait être la réponse acceptée, sinon vous perdez "Afficher le code" et la possibilité d'utiliser le concepteur à tous les niveaux. Cela vous permet de le faire à un niveau granulaire (comme pour les contrôles utilisateur hérités).
Patrick
5

J'aime que mes formulaires s'ouvrent en mode Création, mais j'ai créé un fichier de classe partiel qui ne contenait que du code et Visual Studio voulait l'ouvrir en mode Création tout le temps. Pour empêcher Visual Studio de se rendre compte qu'un fichier source spécifique peut être chargé par Designer, recherchez dans le fichier csproj la balise Compile Include du fichier source approprié et supprimez la balise SubType en dessous.

ajs410
la source
aussi: <SubType> Code </SubType>
Ingénieur
5

Je suis tombé sur ce problème moi-même récemment et les solutions ci-dessus n'ont pas résolu mon problème. J'avais besoin d'entrer Tools | Optionset de modifier les paramètres de HTML Designerà Enable HTML designeret de sélectionner Start pages in: Source View.

Capture d'écran des paramètres

Aaron Palmer
la source
Je devais aller sur WebForm Designer, mais cela l'a essentiellement fait pour moi
Knight0fDragon