首先要 A load 时要将彩旦的enable = false
 然后,在B 登陆时,
if(是)
{ 彩旦的enable = true}
else
{messagebox.show("no");}

解决方案 »

  1.   

    你说的我不明白!!也不完整!!我是要在B的事件中改变A的菜单,但A是MDI窗体,B是子窗体,你要改变A的菜单就在B中构建A的对象吧!!对象以构建就出错了!!!因为那等于把MDI构建2遍了!!所以不对呀!!!
      

  2.   

    在B窗体中写:
    ......//用户登陆判断权限
    //权限正确
    A afrm=new A();
    afrm.MenuItem1.Text="你的权限"//或者根据权限设置该显示的菜单等等
    afrm.Show();
    bfrm.Hide();
      

  3.   

    谢谢大侠的回复!!!但这样做不行的,A afrm= new A();那就在内存中开辟了2个堆!你一个没析构掉另一个有创建了!!那样就出错了!!我自己想办法把!!谢谢你们!!,问版主个问题,怎样给分??谢谢!!
      

  4.   

    A afrm=new A();
    在B窗体中写:
    ......//用户登陆判断权限
    //权限正确
    afrm.MenuItem1.Text="你的权限"//或者根据权限设置该显示的菜单等等
    afrm.Show();
    bfrm.Hide();
    放在上面就可以了
      

  5.   

    //in A:
    public A()
    {
       B b = new B(this);
    }
    // in B:
    public B(A a)
    {
       this.a = a;
    }
      

  6.   

    能不能在A的构造函数中将自己放入全局变量中作为引用,像指针一样。globalmdi=this;
      

  7.   

    这样globalmdi只提供引用,调用globalmdi.member应该不会构造两次了。