MessageBox show存在(对我来说)问题。
我的应用程序是多语言(英语/德语)。
我正在测试一种语言为英文的窗口。 将应用程序设置为德语可以正常工作,但显示MessageBox会创建混合语言。消息是德语(通过资源文件),消息框中按钮的语言是英语(是否而不是Ja Nein)。我的客户端只使用德语版本的Windows,如果他想用英语使用该应用程序,可以使用德语和(messagebox)文本中的相反问题 - >按钮。
.NET语言包可以解决这些冲突吗?手段 - >安装.NET语言包以避免这种语言混合。
message box http://img401.imageshack.us/img401/1914/dlglang.jpg
答案 0 :(得分:4)
.NET语言包不会影响OS元素的文本(显然!)。因此它们不会影响WinForms消息框上的按钮文本,因为它们使用Win32 MessageBox函数。这意味着,如果您的客户端具有德语版本的Windows,那么无论如何,所有库存UI元素(例如那些按钮)都将使用德语。如果他有Vista,他可以购买额外的语言包,但即便如此,在任何给定时间只有一个可以为用户(而不是特定的应用程序)活动。
如果您的客户希望仅以英文使用您的应用程序,那么他必须使用英文Windows版本,或者您必须编写自己的消息框,您自己定义按钮标签。
答案 1 :(得分:0)
这个问题目前对我来说不是一个优先事项。 另一种尝试可能是:
使用System.Windows.Forms.MessageBox.Show而不是System.Windows.MessageBox.Show
http://www.codeproject.com/KB/miscctrl/Localizing_MessageBox.aspx
如果有人已经从CodeProject获得此项目的经验:请回复:)