C#winform中为啥一个窗体的对象可以调用在另一个窗体中创建的一个类未实例化下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#winform中为啥一个窗体的对象可以调用在另一个窗体中创建的一个类未实例化下相关的知识,希望对你有一定的参考价值。
C#winform中为什么一个窗体的对象可以调用在另一个窗体中创建的一个类下未实例化的对象。
Record窗体中有:“public SE se get; set; “代码;
score窗体中有:Record RE = new Record();
RE.se=report[num];
你贴的代码里
RE.se=report[num]; 是对se属性赋值,可以赋值为null,也可以赋值为SE类的对象。
report[num]应该是SE类的对象,可能已经被其他代码实例化了,也有可能没有(null) 参考技术B 窗体下的全局变量或属性是本来就可以不经实例化而调用的,只不过此时它的值是NULL,实例化的过程可以理解成给它赋初值的过程本回答被提问者和网友采纳 参考技术C SE所在的类为RE
那么你在score窗体中实例化一个RE对象并为RE对象的公共变量SE赋值是没有问题的 参考技术D Record类的修饰符是public吧,全局的,代表的是整个解决方案可以使用 第5个回答 2013-01-04 这样没什么问题啊。RE.se=report[num];这个就是给se属性实例化。
C#的winform程序,主窗体的调用问题
默认情况下都是:Application.Run(new FrmMain()); 这样启动的主窗口,也就是说主窗口是没有对象名的
这样我其他的地方,不管是类还是其他窗口类都无法访问主窗口的任何控件、方法。。。
只有用代理或者相互传值的方法,这样做少还可以,多的话不是很麻烦??
我想可不可以定义一个静态类,里面实例化主窗体如:
public static FrmMain frmMain = new FrmMain();
然后program.cs里面Application.Run(frmMain);
这样就很方便了,但是不知道这样做的话好不好? 有没有什么问题呢?
public static FrmMain frmMain =null;
然后在frmMain窗体的初始化或者load中加program.frmMain=this;
基本一样的 参考技术B 这样做完全没有必要。而且也没有实用价值。
如果你想在其他窗体访问主窗体,你可以在其他窗体声明一个带参构造函数,将FrmForm 对象传递过去就是了。NewForm newForm=new NewForm(this);
在新窗体 FrmMain mainForm;在构造函数中赋值,然后你就可以访问主窗体的资源了。追问
一般来说都是这样做的吗?我新手,不太懂这方面的
追答我不知道大部分人是怎么做的,反正我这么做都是可以的
本回答被提问者采纳以上是关于C#winform中为啥一个窗体的对象可以调用在另一个窗体中创建的一个类未实例化下的主要内容,如果未能解决你的问题,请参考以下文章