Wie wird die Benutzeroberfläche des Fensterformulars nach der Einstellung von CurrentUICulture aktualisiert?

8

Ich habe versucht, CurrentUICulture der Anwendung zur Laufzeit zu setzen. Die Menüelemente in meinen Formularen blieben jedoch unverändert. Muss ich etwas zusätzlich zum Ändern von CurrentUICulture tun?

    
Varun Mahajan 12.07.2011, 08:54
quelle

5 Antworten

6

Aus einem Google-Suchergebnis gerippt: Ссылка

  

Ändern Sie "CurrentUICulture" wird nicht automatisch in allen UI-Steuerelement wirksam.

     

Ändern Sie "CurrentUICulture" betrifft nur einige APIs, die zur Lokalisierung gehören. Zum Beispiel "System.Resources.ResourceManager.GetString (...)", Dann verwendet es die aktuelle "CurrentUICulture", um geeignete Zeichenfolgenressourcen zu laden.

     

Für die Windows.Form UI-Steuerung müssen Sie alle Ressourcenzeichenfolgen neu laden, nachdem Sie die "CurrentUICulture" geändert haben.

Wenn Sie davon ausgehen, dass Ihre Ressourcen tatsächlich lokalisiert sind (Sie müssen dies manuell tun - nichts wird es für Sie automatisch tun), können Sie möglicherweise die Benutzeroberflächenkultur einstellen, bevor Sie Ihr erstes Fenster anzeigen. Z.B. in Main .

Bearbeiten:

Stellen Sie außerdem sicher, dass Sie CurrentUICulture im UI-Thread festlegen.

Hier ist ein Beispielcode, wie Sie Ihre Benutzeroberfläche auffrischen können (wiederum, gestohlen von dem Link oben in dieser Antwort):

%Vor%

Sie können wahrscheinlich etwas davon aus InitializeComponent() holen.

    
Merlyn Morgan-Graham 12.07.2011, 08:57
quelle
6

Spät zur Party wieder. Aber hier ist eine Lösung, die ich gefunden habe:

%Vor%     
Duncan 14.05.2015 14:11
quelle
1

Angenommen, Sie haben VS oder ein kompatibles Dienstprogramm zum Erstellen der .resx-Dateien verwendet:

%Vor%

Dies könnte Ihnen manuelle Arbeit ersparen, indem Sie alle lokalisierbaren Eigenschaften manuell setzen und auch die Überladungen von GetXXX (string) verwenden müssen.

    
staafl 04.08.2012 00:18
quelle
1

Zumindest können Sie diesen Zyklus versuchen, nachdem Sie eine CurrentUICulture geändert haben:

%Vor%     
tigrik2017 23.12.2013 08:47
quelle
-1

Kannst du bitte diesen unten erwähnten Code ausprobieren? Ich denke, das wird dir dabei helfen.

%Vor%     
palaniappan 12.07.2011 09:08
quelle

Tags und Links