关于C#(.net)中的this

我要在Form1中显示子窗体Form2,这样写Form2f2=newForm2();f2.MdiParent=this;f2.Show();可以正常显示,后来我改成:Fo... 我要在Form1中显示子窗体Form2,这样写Form2 f2 = new Form2(); f2.MdiParent =this; f2.Show();可以正常显示,后来我改成:Form2 f2 = new Form2();
Form1 f1=new Form1();
f2.MdiParent = f1;
f2.Show();为什么就不行了呢,this不就是代表Fom1吗??为什么不行了呢?
展开
 我来答
小羊说编程
2010-03-31 · 专注编程模式教学,提升大家实战经验
小羊说编程
采纳数:406 获赞数:1394

向TA提问 私信TA
展开全部
兄弟啊 对象不同啊 ,因为f1 是Form1 f1=new Form1();他是从这里得到的,而此时的窗体并不是f1,虽然都是Form1对象 ,但是对象不同 ,因为你正在用的窗体是当前的Form1而不是f1,所以你那样写就不行了,不知道我说明白了吗?
202261256487e6a
2010-03-31 · TA获得超过481个赞
知道小有建树答主
回答量:795
采纳率:0%
帮助的人:686万
展开全部
this不就是代表Fom1吗
-------
this不是Form1,this只表示一个对象实例,也只能在实例内部使用
-----但是按照你下面的写法我估计你明白this代表什么,不然你不会将this改为f1
Form2 f2 = new Form2();
Form1 f1=new Form1();
f2.MdiParent = f1;
f2.Show();
这段代码其实也执行了,只是f1没显示出来,要想f2显示出来,作为主窗体的f1必须要显示,所以f1.Show();也要加上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友70da4cf
2010-03-30 · TA获得超过341个赞
知道小有建树答主
回答量:261
采纳率:0%
帮助的人:215万
展开全部
this是只当前所在的类
第二种情况里面,实例化了一个新的Form1,此时的f1跟this代表的是两个单独的Form1实例,所以此时不能实现第一种的效果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4769606
2010-03-31 · TA获得超过237个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:121万
展开全部
你第二句 Form1 f1=new Form1();
表示重新实例了一个新的Form1,而不是原来的那个Form1

这个时候的this和f1在内存中是两个不同的对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gqgq0311
2010-03-30 · TA获得超过768个赞
知道小有建树答主
回答量:563
采纳率:100%
帮助的人:266万
展开全部
首先你的这几个代码是在那个类里面呢?
this是指当前类的对象如果你是在form1类里 this就是代表Fom1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友43058e9fa
2010-04-01 · 超过18用户采纳过TA的回答
知道答主
回答量:138
采纳率:0%
帮助的人:74.5万
展开全部
在Form1里这样写吧
Form2 f2 = new Form2();
f2.ShowDiloge();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式