C# 无法关闭窗口

C# 无法关闭窗口,c#,winforms,C#,Winforms,我有一个容器窗体和一个子窗口。子窗口搜索控件并更新该控件在数据库中的可见性状态。但在这样做之后,我无法关闭子窗口或父窗口,它将引发异常,无法将“System.Windows.Forms.ToolStripSeparator”类型的对象强制转换为“System.Windows.Forms.ToolStripMenuItem”。我试着捕捉到演员表演结束时的异常情况。但这并没有显示出例外。请帮忙 下面是循环菜单的代码 for (int i = 0; i < toolStripItems.Coun

我有一个容器窗体和一个子窗口。子窗口搜索控件并更新该控件在数据库中的可见性状态。但在这样做之后,我无法关闭子窗口或父窗口,它将引发异常,无法将“System.Windows.Forms.ToolStripSeparator”类型的对象强制转换为“System.Windows.Forms.ToolStripMenuItem”。我试着捕捉到演员表演结束时的异常情况。但这并没有显示出例外。请帮忙

下面是循环菜单的代码

for (int i = 0; i < toolStripItems.Count; i++)
{
    ToolStripMenuItem mi = toolStripItems[i] as ToolStripMenuItem;
    if (mi != null)
    {
        oldMenuToolTips.Add(mi.Name, mi.ToolTipText);
        mi.ToolTipText = mi.Name;

        if (mi.DropDownItems.Count > 0)
        {
            ShowToolStipItems(mi.DropDownItems);
        }

        PageControls.Items.Add(mi.Name);
    }
}
for(int i=0;i0)
{
ShowToolStipItems(mi.下拉项);
}
PageControls.Items.Add(mi.Name);
}
}

我正在尝试本教程中的代码

子窗口中有表单关闭事件处理程序代码。我已经修改了它

foreach (ToolStripMenuItem mi in toolStripItems)
        {
            if (mi.DropDownItems.Count > 0)
            {
                RestoreMenuStripToolTips(mi.DropDownItems);
            }

            if (oldMenuToolTips.ContainsKey(mi.Name))
            {
                mi.ToolTipText = oldMenuToolTips[mi.Name];
            }
            else
            {
                mi.ToolTipText = string.Empty;
            }       
        } 

for(int i=0;i0)
{
RestorementUstriptooltips(mi.DropDownItems);
}
if(oldmenuutooltips.ContainsKey(mi.Name))
{
mi.ToolTipText=oldMenuToolTips[mi.Name];
}
其他的
{
mi.ToolTipText=string.Empty;
}//结束其他
}
}

toolstripseparator出现问题。

请显示要关闭的代码form@lazyberezovsky我还没有写任何关闭窗口的代码。它是默认的windows事件。然后显示事件处理程序code@lazyberezovsky我还没有在事件处理程序中编写任何代码。@user1690835那么您在哪里编写了代码,从哪里得到错误???
for (int i = 0; i < toolStripItems.Count; i++)
           {
             ToolStripMenuItem mi = toolStripItems[i] as ToolStripMenuItem;
              if (mi != null)
            {
                if (mi.DropDownItems.Count > 0)
                {
                    RestoreMenuStripToolTips(mi.DropDownItems);
                }

                if (oldMenuToolTips.ContainsKey(mi.Name))
                {
                    mi.ToolTipText = oldMenuToolTips[mi.Name];
                }
                else
                {
                    mi.ToolTipText = string.Empty;
                }       // end else
            }
            }