2010-09-27 151 views

回答

3

避免花费大量的时间和精力。你的应用的用户将永远得到她熟悉的消息框。它会显示与她的语言相匹配的文本,就像Windows的其他部分一样。有人说俄语作为母语并不需要在飞行中切换到法语。如果她真的这么做了,那么她会购买Windows版旗舰版的许可证,以便快速更改Windows语言。

只要您不覆盖默认文化并且已经本地化了您的应用,您的应用就会效仿。请注意,重写UI线程的默认文化是一件非常危险的事情,.NET使用的线程池线程(或者您也可以)仍然以默认语言运行。由于字符串比较规则的不同,这可能会导致非常微妙的问题。例如,一个线程中填充的SortedList会突然不会在另一个线程中被排序,导致二分查找失效。

+0

谢谢,像往常一样好的答案。 – 26071986 2010-10-04 18:23:38

0

将您的表单中的Localizable属性更改为True。然后通过更改Language属性来设置语言。

+0

试过了。没有反应。 – 26071986 2010-09-27 11:15:33

+0

好吧,我发现这篇文章可能会帮助你:http://www.codeproject.com/KB/miscctrl/Localizing_MessageBox.aspx – Ruel 2010-09-27 11:36:25

1

System.Windows.Forms.MessageBox基于user32.dll中的MessageBox函数,该函数使用当前系统语言在按钮上显示文本。我不知道是否有重写的方法,并且滚动自己的消息框看起来像可用的最佳选项。