C# 自定义ToolStripItem

C# 自定义ToolStripItem,c#,.net,winforms,C#,.net,Winforms,我需要将一组自定义的ToolStripItem(包含附加属性formReference)添加到ToolStripPanel,但由于某种原因它们不会出现 用于添加项目的代码: foreach (Form form in Application.OpenForms) if (form.Name != "MainForm") { myToolStripItem mtsi = new myToolStripItem(form.Text, null, open_form); mtsi.fo

我需要将一组自定义的
ToolStripItem
(包含附加属性
formReference
)添加到
ToolStripPanel
,但由于某种原因它们不会出现

用于添加项目的代码:

foreach (Form form in Application.OpenForms)
if (form.Name != "MainForm")
{
    myToolStripItem mtsi = new myToolStripItem(form.Text, null, open_form);
    mtsi.formReference = form;
    tspTaskBar.Items.Add(mtsi);
}
myToolStripItem:

public class myToolStripItem : ToolStripItem
{
    public object formReference { get; set; }

    public myToolStripItem(string text, System.Drawing.Image image, EventHandler onClick)
        : base(text,image,onClick) { }

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);
    }
}

你能指出我做错了什么吗?谢谢。

我认为问题可能在于
ToolStripPanel
ToolStrip
s的面板,
ToolStrip
是您放置
ToolStripItems
的实际位置。试着在你的
ToolStripPanel
里放一个
ToolStripItem
,然后把你的自定义
ToolStripItem
放进那
ToolStripItem

源于
ToolStripMenuItem
中,而不是
ToolStripItem
解决了这个问题(tspTaskBar是一个ToolStrip,而不是toolStripPanel)。tspTaskBar.Items.Add()方法接受ToolStripItem作为参数,因此我非常确定您将ToolStripItems添加到Items集合中。