我这有一个窗体A,上面就一个toolstrip,下面是个Panel,当我点toolstrip上的按钮时,在Panel中加载一个窗体,
也就是将一个子窗体B加载到Panel中,同时这个子窗体中也有toolstrip,要将子窗体B的toolstirp和主窗体A的toolstrip合并
如下:ToolStripManager.Merge(B.toolStrip1, A.toolStrip1);可是如果我在点击主窗体A中toolstrip中的另一个按钮,要去加载另一个子窗体C的时候,可以加载成功,同时也将子窗体C
的toolstrip与主窗体A的toolstrip合并成功(这个时候子窗体B就已经被子窗体C替换)但是,现在我只要点击toolstrip中的子窗体C的按钮时,执行的却是子窗体B中toolstrip中的事件注:(子窗体B与子窗体C的toolstrip中的按钮都一样)
说的感觉有点像绕口令了

解决方案 »

  1.   

    第一次主窗体加载的时候并且显示的时候,搞个Dictionary<string,ToolStrip> 变量存储来。下次的时候检查一下就OK了。
      

  2.   

    ToolStripManager.RevertMerge(toolStrip1);
                if (this.ActiveMdiChild != null)
                {
                    foreach (System.Windows.Forms.Control control in this.ActiveMdiChild.Controls)
                    {
                        if (control is ToolStrip)
                        {
                            ToolStripManager.Merge((ToolStrip)control, toolStrip1);
                            control.Visible = false;
                        }
                    }
                }