读书人

某类获取主窗体中的public变量解决办法

发布时间: 2013-11-01 14:43:02 作者: rapoo

某类获取主窗体中的public变量
如题:
主窗体中有个ArrayList ar
我在类trends中某个函数想调用它该怎么写?
还有 不能通过构造函数来传值,否则传来的值为null
这个ar是变化比较频繁的,
不知道有没有方法在trends中用到ar的函数直接调用;



还有个问题 其他类如何调用主窗体的实例啊,不new ,就是当前打开的窗体
我在Program.cs进行了改动:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 ff = new Form1();
Application.Run(ff);
不知如何调用
用全局静态变量应该没问题的吧.变量声明写在 main函数外.在main函数里new.
需要处理的是,一旦窗口被关闭(释放)后,访问可能引发问题(你这个例子貌似不存在,它是主窗口。)

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

这个方法很不错。得到程序所有打开窗口中Form1类型的窗口中的第一个。不过要打开了多个窗口副本会遇到额外的问题(你这个例子也不存在这个问题,它是主窗口。)
[解决办法]
仅供参考。
    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;
}
}

[解决办法]
//类:
public class Trends
{
private Form ff;
//带参数构造函数
public trends(Form ff)
{
this.ff = ff;
}
}
//主窗体
Form

//类的使用窗体
//该窗体可以取到主窗体Form的实例,这个百度都有
Form ff = xxxx;
Trends ts = new Trends(ff);
//原理是将窗体作为变量传递给类

读书人网 >C#

热点推荐