2010-06-28 5 views
3

Voici la configuration:Visual Studio 2008 aime insérer des chaînes aléatoires dans mon code

J'ai quelques contrôles avec des champs de texte que je souhaite être vide. Donc, je pourrais avoir, dans mon dossier concepteur:

someControl.HeaderText = ""

ou

someControl.HeaderText = Properties.Resources.blank_string

Cela ne semble se produire quand i » m en essayant de spécifier une chaîne vide pour un texte ou une propriété en-tête-de-ligne à un contrôle.

Si j'ouvre le fichier de concepteur (peut-être cela parce que je cherchais quelque chose) et fermer/sauver tous, VS parfois remplacer mon « » ou Properties.Resources.blank_string

avec:

mondiale: : ProjNameSpace.Properties.Resources. "SomethingCompletelyRandomHere !!!!"

Génial!

Parfois je ne vais pas attraper ça avant que je commence à tourner avec mon application et que je remarque des chaînes étranges apparaissant dans des endroits où il ne devrait pas y en avoir.

POURQUOI cela se passe-t-il?

En fait, ce que je pense qu'il fait est un remplacement. J'ai un tas d'entrées dans mon fichier de ressources de chaîne par défaut qui sont toutes vides (celles qui sont remplies sont les dans les fichiers de ressources traduits). Donc je pense que ça se passe et que je trouve "" ou des chaînes vierges et que je dis juste "hey, on dirait que vous avez d'autres chaînes vierges dans ce fichier de ressources, changeons celui-ci avec celui-ci, Cool!

+2

Je suis content que je ne suis pas le seul qui semble cela, et pour l'enregistrement, il arrive en VS2010, aussi. Cette fois-ci, il a décidé d'échanger une chaîne.Eliminer pour une chaîne qui n'existe même pas * dans le fichier de ressources, ce qui conduit à une erreur de compilation complètement non demandée, et je n'ai eu qu'à google pour cela. Cela semble uniquement arriver à HeaderTexts qui est vide. Malheureusement, je n'ai vu aucune solution réelle, autre que d'utiliser une valeur non vide, ou de la rétablir à chaque fois que VS décide de faire quelque chose de stupide. (Ce qui est assez fréquent.) – neminem

Répondre

1

Vous ne devez pas modifier le fichier du concepteur. Il est généré automatiquement et le studio visuel heureusement heurter tout ce que vous mettez dedans.

Si quelque chose doit être vide, définissez les valeurs par défaut dans le fichier .aspx/.ascx ou dans votre codebehind.

En fait, tous les fichiers de designer, je l'ai vu commencer avec:

//------------------------------------------------------------------------------ 
// <auto-generated> 
//  This code was generated by a tool. 
//  Runtime Version:2.0.50727.4927 
// 
//  Changes to this file may cause incorrect behavior and will be lost if 
//  the code is regenerated. 
// </auto-generated> 
//------------------------------------------------------------------------------ 
+0

Je n'ai jamais utilisé 2008, mais je serais carrément en colère si le comportement était différent de celui de 2005 - si vous avez édité à la main le fichier de sauvegarde que vos modifications ont pris. – Joshua

+0

Je ne modifie pas le fichier du concepteur. Cela se produit si je définis la propriété Text ou HeaderText sur rien "chaîne vide" dans la vue concepteur. – Nick