如何为MenuStrip子类设置默认的MenuItem类型

时间:2013-11-08 11:35:04

标签: c# visual-studio windows-forms-designer

我创建了MenuStripToolStripMenuItem的子类,以便在运行时轻松进行本地化。

现在我的课程看起来像这样:

public class LocalizedMenuStrip : MenuStrip
{
    public void Localize()
    {
        foreach (ToolStripMenuItem Item in Items)
        {
            if (Item is LocalizedMenuItem)
            {
                ((LocalizedMenuItem)Item).Localize();
            }
        }
    }
}

public class LocalizedMenuItem : ToolStripMenuItem
{
    private String textKey;
    private LocalizedString LocalizedText;

    [Browsable(true)]
    [Category("Display")]
    [Description("Sets or returns the TextKey used to retrieve the localized text for this item.")]
    public String TextKey
    {
        get { return textKey; }
        set
        {
            textKey = value;
            LocalizedText = new LocalizedString(value);
            Text = LocalizedText;
        }
    }

    public void Localize()
    {
        Text = LocalizedText;
    }
}

这是按照我的计划进行的,只有一件事让我烦恼:

当我使用Designer将项目添加到LocalizedMenuStrip时,我总是得到一个标准的ToolStripMenuItem。有没有办法告诉设计师创建LocalizedMenuItem而不是?可能是通过向LocalizedMenuStrip

添加属性

感谢任何帮助

0 个答案:

没有答案