Изменить язык для текста кнопки MessageBox - PullRequest
2 голосов
/ 27 сентября 2010

Мне бы хотелось, чтобы текст на кнопках MessageBox был, скажем, на русском, французском и т. Д. - на другом языке, чем он установлен по умолчанию в Windows.

Есть ли способ сделать это без создания моих пользовательских MessageBoxes?

Ответы [ 3 ]

3 голосов
/ 27 сентября 2010

Старайтесь не тратить на это много времени и энергии. Пользователь вашего приложения всегда получит окно сообщения, с которым он знаком. Он покажет текст, который соответствует ее языку, так же, как и остальная часть Windows. Кому-то, кто говорит по-русски как на своем родном языке, не нужно переключаться на французский на лету. Если бы она действительно это сделала, она бы приобрела лицензию на Ultimate редакцию Windows, которая позволяет быстро менять язык Windows.

Ваше приложение будет следовать его примеру, если вы не переопределите стандартную культуру и не локализуете свое приложение. Помните, что переопределение культуры по умолчанию для потока пользовательского интерфейса очень опасно, поскольку потоки пула потоков, которые использует .NET (или вы в этом отношении), все еще работают на языке по умолчанию. Это может вызвать очень тонкие проблемы из-за различных правил сравнения строк. Например, SortedList, заполненный в одном потоке, внезапно больше не будет сортироваться в другом потоке, вызывая сбой двоичного поиска.

1 голос
/ 27 сентября 2010

System.Windows.Forms.MessageBox основан на функции MessageBox, присутствующей в user32.dll, которая использует текущий системный язык для отображения текста на кнопках.Я не знаю, есть ли способ переопределить это, и прокрутка собственного окна сообщения выглядит как лучший доступный вариант.

0 голосов
/ 27 сентября 2010

Измените свойство Localizable в вашей форме на True . Затем установите язык, изменив свойство Language.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...