使用时,MessageBox.Show()
您可以选择MessageBoxButtons。可用的按钮是一个枚举,并为您提供“Yes No”、“OK Cancel”等选项。
例如,当我使用挪威语消息文本时,用户仍然会收到英文“Yes No”。
有没有办法更改按钮的文本(在 C# 中)以使语言正确?我可以覆盖文本,或者以某种方式设置当前语言环境,以便我可以使用“Ja Nei”而不是“Yes No”吗?
我不想依赖在我的客户端安装 .NET 语言包。
使用时,MessageBox.Show()
您可以选择MessageBoxButtons。可用的按钮是一个枚举,并为您提供“Yes No”、“OK Cancel”等选项。
例如,当我使用挪威语消息文本时,用户仍然会收到英文“Yes No”。
有没有办法更改按钮的文本(在 C# 中)以使语言正确?我可以覆盖文本,或者以某种方式设置当前语言环境,以便我可以使用“Ja Nei”而不是“Yes No”吗?
我不想依赖在我的客户端安装 .NET 语言包。
.NET 中没有对此的本机支持(据我所知,无论如何;如果我错了,请纠正我,任何人)。我确实遇到过这篇 CodeProject 文章,它似乎通过一些消息挂钩和 P/Invoke 来解决问题:http: //www.codeproject.com/KB/miscctrl/Localizing_MessageBox.aspx
通常消息框按钮(与所有 Windows 一样)支持当前为 Windows 设置的 UI 语言。因此,如果您安装了英文并且无法更改语言(MUI 版本或 Vista/7 的 Ultimate),那么您就不走运了。
你可以自己实现一个消息框,但我求你不要这样做。当人们开始重新发明方轮时,我最想念的就是按钮的常用热键、使用 Ctrl+Ins 复制内容等简单的东西。
我认为不可能,但请参阅 MSDN 文章MessageBox.Show Method。你可能会得到一些想法。您可以更改消息框中的文本。如何创建自己的消息框(新表单)并显示它们?
您可以创建一个pnlExitMode
具有属性的面板 ( ),Visible=false
并将信息文本以及标记为 YES 和 NO 的按钮 ( btnYes
, btnNo
)(带有“您的”语言的按钮标题)放在此面板上,然后将所需的 Yes/No- 操作放入按钮事件处理例程。在决策时(在我的情况下:如果ini
在关闭应用程序时文件尚未写入,则发出警告)将面板设置为Visible
. 将弹出带有按钮的面板。
示例代码:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (bIniModified)
{
pnlExitMode.Visible = true; pnlExitMode.BringToFront();
e.Cancel = true;
}
}
private void btnYes_Click(object sender, EventArgs e)
{
SaveToIni();
pnlExitMode.Visible = false; bIniModified = false;
Application.Exit();
}
private void btnNo_Click(object sender, EventArgs e)
{
pnlExitMode.Visible = false; bIniModified = false;
Application.Exit();
}