方法1、将menuItem1的属性设为public;
方法2、定一个方法做这件事情;

解决方案 »

  1.   

    昨天停电了,就没有来。我的主函数是这样
    static void Main() 
    {
    Application.Run(new Form1());
    }
    是自动生成的。这样,是否没有Form1的实例呢?因为menuItem1的属性设为public后,然后在另一个Form中设置时,如下:Form1.menuItem1.Enabled=true;      报错误: 非静态的字段、方法或属性“EDME.Form1.menuItem1”要求对象引用
      

  2.   

    我在Form1中,这样 public static void set()
    {
    menuItem1.Enabled=true;//或者不用static 然后加this.me……,还是不行
    }在另一个Form中,调用Form1.set();就是不行。
      

  3.   

    晕死,你可以在自动生成的主Main()函数入口的那个类里面增加一个public Form2的实例就OK了。如加上:
    public static Form1 form1=new Form1();//注意一定要声明为static静态的实例,不然就会报错。
    再把
    static void Main() 
    {
    Application.Run(new Form1());
    }
    改成:static void Main() 
    {
    Application.Run(form1);
    }
    不就成了吗?form1就可以在任何窗口访问了。
      

  4.   

    应该是可行的,定义一个public方法,然后在另外的form中调用
    你可以把相关代码发上来看一下
      

  5.   

    tangwei168() 兄说的不错,关键要建立一个实例。我觉得如果不建立,就算public 一个方法,还是无法设置未建立的吧?没有实例,就不能设置。如果用static ,又无法使用this。
      

  6.   

    后来又想了想,如果把属性设置为public 似乎不合乎面向对象的思想。还是通过调用函数实现好些。我在Form1中这样: public static void set()
    {
    form1.menuItem1.Enabled=true;
    }
    然后在另一个Form中,如此调用:Form1.set();  就可以了。前提是如tangwei168() 兄说的不错,建立一个实例。