如题:
主窗体中有个ArrayList ar
我在类trends中某个函数想调用它该怎么写?
还有 不能通过构造函数来传值,否则传来的值为null
这个ar是变化比较频繁的,
不知道有没有方法在trends中用到ar的函数直接调用;还有个问题 其他类如何调用主窗体的实例啊,不new ,就是当前打开的窗体
我在Program.cs进行了改动:
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Form1 ff = new Form1();
            Application.Run(ff);
不知如何调用

解决方案 »

  1.   

    Program.cs中
    public static Form1 ff = new Form1();在任何地方都可以这样访问 Program.ff.ar。
      

  2.   

    var ff = Application.OpenForms.OfType<Form1>().First();
    ff.ar
      

  3.   

    你这个差不多理解
    不明白为什么用var声明直接Form就好了
      

  4.   

    你这个差不多理解
    不明白为什么用var声明直接Form就好了
    编译器自动能识别。
      

  5.   

    ......貌似错的
    用全局静态变量应该没问题的吧.变量声明写在 main函数外.在main函数里new.
    需要处理的是,一旦窗口被关闭(释放)后,访问可能引发问题(你这个例子貌似不存在,它是主窗口。)
    这个方法很不错。得到程序所有打开窗口中Form1类型的窗口中的第一个。不过要打开了多个窗口副本会遇到额外的问题(你这个例子也不存在这个问题,它是主窗口。)
      

  6.   

    仅供参考。    public partial class Form1 : Form
        {
            public static ArrayList ar;
            public Form1()
            {
                InitializeComponent();
                ar = new ArrayList();
            }
        }
        public class trends
        {
            public void _trends()
            {
                ArrayList _ar = Form1.ar;
            }
        }
      

  7.   

    //类:
    public class Trends
    {
        private Form ff;
        //带参数构造函数
        public trends(Form ff)
        {
            this.ff = ff;
        }
    }
    //主窗体
    Form//类的使用窗体
    //该窗体可以取到主窗体Form的实例,这个百度都有
    Form ff = xxxx;
    Trends ts = new Trends(ff);
    //原理是将窗体作为变量传递给类