Richtige Sprache für Controlbeschriftung ermitteln

  • VB.NET
  • .NET (FX) 3.0–3.5

    Richtige Sprache für Controlbeschriftung ermitteln

    Hallo liebe Community!
    Ich bin beim Basteln eines eigenen Messagebox-dialogs auf ein Problem gestoßen:
    Wie kann ich die korrekte Beschriftung der Buttons in einer Messagebox (alle Möglichkeiten sind im Enum MessageBoxButtons aufgelistet) ermitteln?

    Falls noch immer nicht klar ist was ich suche, Ich suche die Beschriftungen "OK", "Ja", "Nein", "Abbrechen", "Wiederholen", "Ignorieren" in den jeweils korrekten Sprachen des Betriebssystems,
    sowie dies bei der normalen Messagebox auch der Fall ist.

    Habt ihr eine Anregung?
    Danke im Vorraus!



    Edit://
    Nach langem Suchen bin ich auf ein Ergebnis gestoßen.
    Die Methode MB_GetString in der user32.dll beinhaltet genau den Text für die Buttons in einem Dialog.
    Festgelegt sind die ID's in dem Enum DialogBoxCommandID:

    C#-Quellcode

    1. /// <summary>
    2. /// Represents possible dialogbox command id values by the MB_GetString function.
    3. /// </summary>
    4. public enum DialogBoxCommandID : int
    5. {
    6. IDOK = 0,
    7. IDCANCEL = 1,
    8. IDABORT = 2,
    9. IDRETRY = 3,
    10. IDIGNORE = 4,
    11. IDYES = 5,
    12. IDNO = 6,
    13. IDCLOSE = 7,
    14. IDHELP = 8,
    15. IDTRYAGAIN = 9,
    16. IDCONTINUE = 10
    17. }


    Über Marshal.PtrToStringAuto(MB_GetString(ID) kann somit der richtige Wert ausgelesen werden.

    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gather“ ()