C#的winform程序,主窗体的调用问题

默认情况下都是:Application.Run(newFrmMain());这样启动的主窗口,也就是说主窗口是没有对象名的这样我其他的地方,不管是类还是其他窗口类都无法访... 默认情况下都是:Application.Run(new FrmMain()); 这样启动的主窗口,也就是说主窗口是没有对象名的
这样我其他的地方,不管是类还是其他窗口类都无法访问主窗口的任何控件、方法。。。
只有用代理或者相互传值的方法,这样做少还可以,多的话不是很麻烦??

我想可不可以定义一个静态类,里面实例化主窗体如:
public static FrmMain frmMain = new FrmMain();
然后program.cs里面Application.Run(frmMain);
这样就很方便了,但是不知道这样做的话好不好? 有没有什么问题呢?
展开
 我来答
syht2000
高粉答主

2014-07-15 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
可以这样做,没什么问题,也没必要定义静态类,只需要象你上面声明静态变量就可以了。当然,也可以比如在program.cs里(当然你其它类也行),加入
public static FrmMain frmMain =null;
然后在frmMain窗体的初始化或者load中加program.frmMain=this;
基本一样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b191f26bc
推荐于2016-11-10 · TA获得超过187个赞
知道答主
回答量:173
采纳率:100%
帮助的人:138万
展开全部
这样做完全没有必要。而且也没有实用价值。
如果你想在其他窗体访问主窗体,你可以在其他窗体声明一个带参构造函数,将FrmForm 对象传递过去就是了。NewForm newForm=new NewForm(this);
在新窗体 FrmMain mainForm;在构造函数中赋值,然后你就可以访问主窗体的资源了。
追问
一般来说都是这样做的吗?我新手,不太懂这方面的
追答
我不知道大部分人是怎么做的,反正我这么做都是可以的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式