2009-06-10 4 views
0

J'ai une méthode Translate qui cherche une traduction. Normalement, les traductions sont chargées dans le constructeur Window (j'ai essayé dans App.Setup aussi). Non, si je lance l'application, toutes les traductions s'affichent correctement, mais lors de l'ouverture d'un contrôle utilisateur, toutes les traductions ont disparu.Où dois-je mettre le code d'initialisation pour qu'il soit exécuté avant que VS mette mon contrôle en mode design

La question est de savoir où je mets mon code d'initialisation de sorte qu'il serait exécuté avant VS initialise fenêtre de conception

Répondre

1

il devrait être constructeur par défaut

+0

Puis-je avoir un lieu commun pour cela. J'ai beaucoup de contrôles et une chose est que c'est beaucoup de copier/coller. Une autre chose est que lorsque je compile le programme, je vais lancer l'initialisation à chaque fois que le contrôle est créé. Connaissez-vous d'autres solutions? –

+0

Je pense que tout dépend de quoi et comment votre code recherche des extensions de traduction. J'encapsulerais probablement la logique de recherche de traduction dans une classe statique et initialiserais seulement une fois. – idursun

0

Soit le constructeur de la classe (ou code appelé de celui-ci) ou un membre statique initialisé par un constructeur statique.

Option 1:

public partial class MyUserControl : UserControl 
{ 
    int thisWillWork = 1; 
    int thisWillAlsoWork; 

    public MyUserControl() 
    { 
     thisWillAlsoWork = 1; 

     InitializeComponents(); 
    } 

Option 2:

public class SomeOtherClass 
{ 
    public static int YouCanUseThis = 1; 
    public static int AndThisAlso; 

    static SomeOtherClass() 
    { 
     AndThisAlso = 1; 
    } 
} 
Questions connexes