2009-05-30 3 views
17

При использовании MessageBox.Show() у вас есть выбор из MessageBoxButtons на выбор. Доступные кнопки - это перечисление и дают вам варианты «Да Нет», «ОК Отмена» и т. Д.Кнопки MessageBox - заданный язык?

Когда я использую, например, норвежский мессенджмент, пользователь по-прежнему получает английский «Да Нет».

Есть ли способ изменить текст кнопок (на C#), чтобы язык был правильным? Могу ли я переопределить текст или установить текущую локаль каким-то образом, чтобы я мог «Ja Nei» вместо «Да Нет»?

Я не хочу полагаться на установку языкового пакета .NET на моем клиенте.

ответ

21

В .NET нет встроенной поддержки .NET (насколько я знаю, в любом случае, пожалуйста, поправьте меня, если я ошибаюсь, кто-либо). Я наткнулся на эту статью CodeProject, что, кажется, сделать трюк с некоторыми сообщениями подсекать и P/Invoke: http://www.codeproject.com/KB/miscctrl/Localizing_MessageBox.aspx

1

Я не думаю, что это возможно, но обратитесь к статье MSDN MessageBox.Show Method. Вы можете получить некоторые идеи. Вы можете изменить текст в окне сообщения. Как создать собственное окно сообщений (новая форма) и отобразить их?

12

Обычно кнопки сообщений (как и все Windows) соответствуют установленному в настоящее время языку пользовательского интерфейса для Windows. Поэтому, если у вас установлена ​​английская версия и вы не можете менять языки (версии MUI или Ultimate для Vista/7), вам не повезло.

Вы можете создать окно сообщений самостоятельно, но я прошу вас этого не делать. Простые вещи, такие как обычные горячие клавиши для кнопок, имеющие возможность использовать Ctrl + Ins для копирования содержимого и т. Д., Я больше всего пропускаю, когда люди начинают изобретать квадратные колеса.

Смежные вопросы