Positionierung von Controls verschieben sich bei Sprachumschaltung während der Laufzeit

  • VB.NET
  • .NET (FX) 4.0

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Positionierung von Controls verschieben sich bei Sprachumschaltung während der Laufzeit

    Hallo Forum,

    habe wieder einmal einen interessanten Effekt:

    Biete meinen Usern an die Sprache der kompletten Applikation umzuschalten. Das realisiere ich, indem ich alle Controls während der Laufzeit durchgehe und diesen über den ComponentRessourceManager die neue Fremdsprachen-Ressource zuordne. Ging bisher auf meiner alten Entwicklungsumgebung (Win 7, Visual Studio 2012 Prof) gut - nur sehr langsam. Nachdem ich mein Projekt auf Win10, selbe Entwicklungsumgebung umgezogen habe, werden die Controls in der Sprache umgeschaltet, jedoch komplett falsch positioniert & Groupboxes in der falschen Größe dargestellt. Habe versucht mit unterschiedlichen Frameworks von 4.0 bis 4.7 zu compilieren. Ergebnis jedoch immer das selbe. Dabei ist es dann auch Egal unter welcher Umgebung ich die App laufen lasse (Win 7 - Win 10, Framework 4 - 4.7).

    Suche jetzt eine Lösung, in der ich entweder
    a) die "Fremdsprachenkoordinaten" auslesen kann und diese nachträglich den Controls wieder zuordnen
    b) eine Einstellung im Projekt, dass mir VStudio die Controls korrekt platziert

    Hattet Ihr schon einmal so einen Fall?

    Danke für Eure Hilfe
    Frequentprogrammer
    @Frequentprogrammer Wenn Du die Mehrsprachigkeit nach den .NET-Vorstellungen gemacht hast, wird die Position und die Größe mit gespeichert.
    Du musst die anderssprachige Ressource öffnen und dort die betreffenden Zeilen einfach löschen.
    Alle Dateien anzeigen, (z.B.) Form1.de-DE.resx Doppelklick, Andere öffnen

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo RodFromGermany,

    danke für den Hinweis wie ich an die .resx Dateien ran komme.

    Da in den Sprachversionen ja nur die Abweichungen von der .resx Datei steht, habe ich die Englische Version komplett gelöscht (da diese gleich der .resx ist). Bei App Start ist die .de.resx aktiv und der Bildschirmaufbau ist korrekt. Wenn ich umschalte auf die .en.resx sind die Controls falsch positioniert. Wenn ich nun zurück auf die deutsche (.de.resx) schalte, werden die Controls auch falsch angeordnet.

    Wo liegt mein Fehler? Muss zugeben, dass ich nicht de-DE oder en-EN gewählt habe, da ich nur eine .resx für alle deutschen/englischen Sprachen haben will. Kann es daran liegen?

    Gruß Frequentprogrammer

    Frequentprogrammer schrieb:

    Bei App Start ist die .de.resx aktiv
    Wie wird sie aktiviert?
    Welches ist Deine neutrale Sprache?
    Du hast eine de und eine en, da stimmt was nicht, weil normalerweise ist eine dieser beiden neutral. Ich tendiere zu en, da kannst Du einem Kunden in Nordsüdostwesttupfland Dein Programm geben und es erscheint in englisch.
    Vielleicht solltest Du Dir mal das Tut durchlesen und feststellen, was bei Dir anders ist.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!