1

実行時に簡単にローカライズできるように、MenuStripとのサブクラスを作成しました。ToolStripMenuItem

現在、私のクラスは次のようになっています。

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;
    }
}

これは私が計画したとおりに機能し、私を悩ませているのは1つだけです。

LocalizedMenuStripDesigner を使用してアイテムを追加すると、常に標準を取得することになりますToolStripMenuItemLocalizedMenuItem代わりに sを作成するようデザイナーに指示する方法はありますか? たぶん、に属性を追加することによってLocalizedMenuStrip

どんな助けでも大歓迎です

4

0 に答える 0