Кнопки MessageBox - установить язык?
-
06-09-2019 - |
Вопрос
Когда вы используете 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.Показать метод.Возможно, у вас появятся какие-то идеи.Вы можете изменить текст в окне сообщения.Как насчет того, чтобы создать свое собственное окно сообщений (новую форму) и отобразить их?