static void Main() 
{
         Form1 MainForm=new Form1(); 
Application.Run(MainForm);
}
  
public class Form1 : System.Windows.Forms.Form
        {
          public int x;
          //下面的代码在一事件中
          AddDataForm a= new AddDataForm();
 a.ShowDialog(); 
         } 
public class AddDataForm : System.Windows.Forms.Form
        {
             int a=MainForm.x;//这里错了
                  }      结果俺在AddDataForm中无法访问   
提示:找不到类型或命名空间MainForm.俺的这2个窗体在统一命名空间呀!请不吝赐教!

解决方案 »

  1.   

    public class AddDataForm : System.Windows.Forms.Form
            {
                 Form1 MainForm = new Form1(); 
                 int a = MainForm.x;//这里错了
                      }
      

  2.   

    俺已经有一个MainForm了,俺只想调用mainForm的一个公共变量。
      

  3.   

    你定义的那个MainForm在这里是不能用的.它们不在同一类中.
      

  4.   

    如果我没看错,MainForm是函数Main的函数内部变量,不是类的公共成员.
      

  5.   

    俺实例化了呀!AddDataForm a= new AddDataForm();
       a.ShowDialog(); 在AddDataForm class 中有一事件
       {
           int a=MainForm.x  
         }
    但无法访问MainForm 。提示:找不到类型或命名空间MainForm.俺的这2个窗体在统一命名空间呀!
      

  6.   

    你定义的那个MainForm在这里是不能用的.它们不在同一类中.
     -为啥不能用?MainForm是一个对象呀!俺是在main()中定义的,按认为所有地方都可以访问!是吗?你调用别人难道自己不用实例化吗~~~~~
      ------俺实例化了呀!如果我没看错,MainForm是函数Main的函数内部变量,不是类的公共成员
             --------mainForm 是form1的变量。x是from1的公共字段。俺不能访问吗?
      

  7.   

    "mainForm 是form1的变量"--MainForm不是Form1的变量,是Main函数的内部变量,它的作用域是Main函数内部,也就是除了Main函数以外谁都不能访问.
      

  8.   


    AddDataForm a= new AddDataForm();
    a.ShowDialog();
    }
    public class AddDataForm : System.Windows.Forms.Form
    {
    int a=MainForm.x;//这里错了
    } 把//这里错了前的MainForm改成this试试呢?
    我也是初学者,大家不要笑话,^_^