消息框按钮 - 设置语言?

25
当你使用MessageBox.Show()时,你可以选择MessageBoxButtons。可用的按钮是一个枚举,提供了"是 否"、"确定 取消"等选项。
例如,当我使用挪威语消息文本时,用户仍然会看到英文的"Yes No"。
有没有一种方法可以更改按钮文本(在C#中),使其正确显示语言?我能否覆盖文本或以某种方式设置当前区域设置,以便我可以使用"Ja Nei"而不是"Yes No"?
我不想依赖于在客户端安装.NET语言包的方式。
4个回答

25

16
通常消息框按钮(就像整个 Windows 系统一样)会尊重当前设置的 UI 语言。因此,如果您安装的是英文版且无法更改语言(针对 Vista/7 的 MUI 版本或终极版),那就没办法了。
您可以自己实现一个消息框,但我建议您不要这么做。当人们开始重新发明轮子时,像普通热键按钮、能够使用 Ctrl+Ins 复制内容等简单的功能,是我最想念的东西。

1

我认为这是不可能的,但可以参考MSDN文章MessageBox.Show Method。你可以得到一些想法。你可以更改消息框中的文本。创建自己的消息框(新表单)并显示它们怎么样?


0
您可以创建一个名为pnlExitMode的面板,将其属性设置为Visible=false,并在面板上放置信息文本和标有“是”和“否”的按钮(btnYesbtnNo),并使用“您”的语言标注按钮标题。然后,在按钮事件处理程序中放置所需的“是/否”操作。
在决策时间(例如:当关闭应用程序时警告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();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接