C# MessageBox按钮-设置语言?
使用C# MessageBox按钮-设置语言?,c#,.net,localization,messagebox,C#,.net,Localization,Messagebox,使用MessageBox.Show()时,您可以从中进行选择。可用的按钮是枚举,并提供“是否”、“确定取消”等选项 例如,当我使用挪威语短信时,用户仍然会收到英文“Yes No” 有没有办法更改按钮的文本(C#)以确保语言正确?我是否可以覆盖文本,或者以某种方式设置当前区域设置,以便我可以使用“Ja-Nei”而不是“Yes-No” 我不想依赖于在我的客户端安装.NET语言包。在.NET中对此没有本机支持(就我所知,无论如何;如果我错了,请纠正我,任何人)。我确实遇到过这篇CodeProject文
MessageBox.Show()
时,您可以从中进行选择。可用的按钮是枚举,并提供“是否”、“确定取消”等选项
例如,当我使用挪威语短信时,用户仍然会收到英文“Yes No”
有没有办法更改按钮的文本(C#)以确保语言正确?我是否可以覆盖文本,或者以某种方式设置当前区域设置,以便我可以使用“Ja-Nei”而不是“Yes-No”
我不想依赖于在我的客户端安装.NET语言包。在.NET中对此没有本机支持(就我所知,无论如何;如果我错了,请纠正我,任何人)。我确实遇到过这篇CodeProject文章,它似乎通过一些消息挂钩和P/Invoke实现了这个技巧:
我认为这是不可能的,但请参阅MSDN文章。你可能会有一些想法。您可以更改消息框中的文本。创建自己的消息框(新表单)并显示它们怎么样?通常消息框按钮(与所有窗口一样)支持当前为Windows设置的UI语言。因此,如果您安装的是英语,并且无法更改语言(MUI版本或Vista/7的Ultimate),那么您就倒霉了 您可以自己实现messagebox,但我恳请您不要这样做。当人们开始重新发明方轮时,我最怀念的是按钮的普通热键、能够使用Ctrl+Ins复制内容等简单功能。您可以创建一个面板(
pnlExitMode
),其中包含属性Visible=false
,并放置信息文本和按钮(btnYes
,btnNo
)标记为是和否(带有“您的”语言的按钮标题)到该面板上,然后将所需的是/否-操作放入按钮事件处理例程中。
在决策时(在我的情况下:如果关闭应用程序时ini
文件尚未写入,则发出警告),将面板设置为可见
。带有按钮的面板将弹出
示例代码:
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();
}