private PictureBoxSizeMode[] modemenuarray = {
                                                         PictureBoxSizeMode.StretchImage,
                                                         PictureBoxSizeMode.Normal
                                                    };
        private int selectimagemode = 0;        private void menu_childclick(object sender, EventArgs e) {
            if(sender is MenuItem){
                MenuItem mi = (MenuItem)sender;
                selectimagemode = mi.Index;
                pb1.SizeMode = modemenuarray[mi.Index];
                pb1.Invalidate();
            }
        }是照着书写的。有 两个菜单,根据它俩的index决定PictureBox的SizeMode属性为StretchImage或Normal;
两个菜单共用menu_childclick()方法。错误是到menu_childclick()方法的if那行结果为假,进不去。
如果把if注释掉,那MenuItem mi = (MenuItem)sender;就有一个InvalidCastException异常无法将类型为“System.Windows.Forms.ToolStripMenuItem”的对象强制转换为类型“System.Windows.Forms.MenuItem”。怎么照书打也错了???(另个,,书上写的是添加mainmenu可能是书有点老(刚才一看,是03年的),我用的是vs2008,没找到mainmenu,就用了MenuStrip)

解决方案 »

  1.   

    在左边工具箱里面点右键,添加
    找到MainMenu控件,加上来,就有了。
      

  2.   

    谢谢,,倒是可以了。还有点不明白。mainmenu 和 menustrip不一样吗?在mainmenu右边的属性里我也没看到index属性,为什么它能用呢。要是用menustrip和上面一样的效果,要怎么做
      

  3.   

    MenuItem mi = (MenuItem)sender;
    -------------------------------
    MenuStripItem msi=(MenuStripItem)sender;尽信书,不如无书。
      

  4.   

    其实大同小异,但是略有不同。你可以理解为MenuStrip是VS2005新增加的,用来实现类似Office2003这样比较漂亮的,带图标的菜单。
    而MainMenu是对系统标准菜单的封装。