更改MessageBox按钮文本的语言

时间:2010-09-27 10:54:01

标签: c# winforms

我希望在MessageBox的按钮上有文字,比如俄语,法语等等 - 与Windows默认设置的语言不同。

有没有办法在不创建自定义MessageBox的情况下执行此操作?

3 个答案:

答案 0 :(得分:3)

避免在此花费大量时间和精力。您应用的用户将始终获得她熟悉的消息框。它将显示与她的语言匹配的文本,就像其他Windows一样。说俄语作为母语的人不需要在飞行中切换到法语。如果她真的这样做,那么她就会购买Windows版Ultimate版的许可证,允许快速更改Windows语言。

只要您没有覆盖默认文化并已对您的应用进行本地化,您的应用就会效仿。请注意,覆盖UI线程的默认文化是一件非常危险的事情,.NET使用的线程池线程(或者你就此而言)仍然以默认语言运行。由于字符串比较规则不同,这可能会导致非常微妙的问题。例如,填充在一个线程中的SortedList将不再在另一个线程中被排序,导致二进制搜索出现故障。

答案 1 :(得分:1)

System.Windows.Forms.MessageBox基于MessageBox中的user32.dll函数,该函数使用当前系统语言显示按钮上的文本。我不知道是否有一种覆盖它的方法,滚动你自己的消息框似乎是最好的选择。

答案 2 :(得分:0)

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