//CLASS a 下的方法,用于打开FORM
public void  openform(Form fn) 
        {
            主菜单 zcd = new 主菜单();  //主菜单是一个父窗体
         fn fmChild8 = new fn();//创建要打开的窗体对象
            bool isOpen = true;
            foreach (Form frm8 in zcd.MdiChildren)//遍历已打开的MDI
            {
                if (frm8.Name == fmChild8.Name)
                {
                    fmChild8.TopMost = true;
                    fmChild8.Focus();
                    fmChild8.Activate();
                    isOpen = false;
                }
            }
            if (isOpen)//如果没有找到相同窗体则打开新窗体
            {
                fmChild8.MdiParent = this;
                fmChild8.Show();
            }
        }
调用:
 private void 商品目录ToolStripMenuItem_Click(object sender, EventArgs e)
        {
a k=new a();
k.openform(商品目录);  
        } 错误提示:
错误 1 找不到类型或命名空间名称“fn”(是否缺少 using 指令或程序集引用?)
错误 2 “测试系统.商品目录”是“类型”,但此处被当做“变量”来使用不知道应该怎么修改

解决方案 »

  1.   

    fn fmChild8 = new fn();//创建要打开的窗体对象 
    这个fn不存在的吧?
      

  2.   

    “测试系统.商品目录”  这个应该是个类的
    测试系统.商品目录 xx = new 测试系统.商品目录();
    这样来用的
      

  3.   

    fn上右键没【解析】这选项= =,我是想把要打开的FORM的名字设为fn,忘记说CLASS a是在另一个叫COM.CS 的类里面的
      

  4.   

    因为你给openform方法传入的是一个类名,而不是一个实例,所以出错。
    按照楼主的意思,其实openform方法可以不带参数。