汉化DotNetBar中控件的系统文本

时间:2023-03-09 03:17:32
汉化DotNetBar中控件的系统文本

作者:ComponentCN 出处:www.componentcn.com 2011年11月02日 阅读:

DotNetBar很多子控件的系统文本、提示信息等都是可以本地化的,可以转化为多种语言,控件提供DotNetBarManager.LocalizeString事件来进行每个控件的系统文本汉化。如果是想进行全局汉化所有DotNetBar 控件,则可以使用 LocalizationKeys.LocalizeString 事件来进行汉化,如对MessageBoxEx控件进行汉化。

具体请看下面的代码:

全局汉化:

[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
 
    DevComponents.DotNetBar.LocalizationKeys.LocalizeString += new DevComponents.DotNetBar.DotNetBarManager.LocalizeStringEventHandler(LocalizeString);
 
    Application.Run(new Form1());
}
 
static void LocalizeString(object sender, DevComponents.DotNetBar.LocalizeEventArgs e)
{
     if (e.Key == LocalizationKeys.MessageBoxYesButton)//汉化MessageBoxEx控件中的Yes按钮
            {
                e.LocalizedValue = "是";
                e.Handled = true;
            }
}

当然LocalizationKeys类,里面枚举了很多控件的系统文本,都可以一一进行汉化,具体操作就跟上面一样。
具体某个控件汉化,很多DotNetBar控件都提供了LocalizeString事件,可以在该事件里对该控件的系统文本进行汉化:如navigationPane中系统文本"show more buttons"的汉化:

private void navigationPane1_LocalizeString(object sender, LocalizeEventArgs e)
        {
            if (e.Key == LocalizationKeys.NavBarShowMoreButtons)
            {
                e.LocalizedValue = "显示更多按钮";
                e.Handled = true;
            }
        }

其他控件的汉化都跟上面的模式一样,这里就不一一介绍了。

相关文章