Вопрос

Когда вы используете MessageBox.Show() у вас есть выбор из Кнопки MessageBoxButtons на выбор.Доступные кнопки представляют собой перечисление и предоставляют вам такие опции, как "Да, нет", "ОК, отмена" и т.д.

Когда я использую, например, норвежский текст сообщения, пользователь по-прежнему получает английское "Yes No".

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top