有一个主窗体,他有两个子窗体A、B。
A上有一个datagridview和一个方法a,class A
{
private void a(int i)
{
//i为行号,对此行数据进行操作
}  
}
B、上有一个变量n;一个方法b;
class B
{
private void b()
{
   //A.a(n);怎样实现?
}
}
在B里面不能直接调用A.a(n),用委托可以吗?
具体怎样做?

解决方案 »

  1.   

    最简单的,采用类似全局变量的方式,定义个静态类,在类中分别定义A、B两个窗体变量
    public static class Globle
        {        public static A A1;
            public static B B1;
    }父窗体打开两个窗口时,分别将打开的句柄赋予
    Globle.A1和Globle.B1然后修改B类class B
    {
    private void b()
    {
       if (if (Globle.A1 != null && !Globle.A1.IsDisposed)) Globle.A1.a(n);
    }
    }
      

  2.   

    委托不是这么用的
    要实现你的功能.
    直接改为 静态方法
    class A
    {
    public static void a(int i)
    {
    //i为行号,对此行数据进行操作
    }  
    }