Кнопки MessageBox - установить язык? - PullRequest
21 голосов
/ 31 мая 2009

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

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

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

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

Ответы [ 3 ]

22 голосов
/ 31 мая 2009

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

16 голосов
/ 31 мая 2009

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

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

1 голос
/ 31 мая 2009

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

...