请教大侠,这是为啥,C#入门

问题描述

即时窗口输出:this.pnlTool{System.Windows.Forms.Panel,BorderStyle:System.Windows.Forms.BorderStyle.None}base{System.Windows.Forms.ScrollableControl}:{System.Windows.Forms.Panel,BorderStyle:System.Windows.Forms.BorderStyle.None}AutoSize:trueAutoSizeMode:GrowAndShrinkBorderStyle:NoneTabStop:falseText:""curSubForm.pnlToolnullcurSubForm==thistrue实验了把curSubForm放到上一级对象也这样.

解决方案

解决方案二:
信息不全,宕机中
解决方案三:
谁知道你在干嘛呢,输出什么也是你控制的
解决方案四:
curSubForm.GetHashcode()this.GetHashcode()看看
解决方案五:
dontknowwhaturtalkingabout~~~~~~
解决方案六:
各位兄弟,意思就是说curSubForm==this但curSubForm.pnlTool!=this.pnlTool
解决方案七:
引用3楼的回复:

curSubForm.GetHashcode()this.GetHashcode()看看

colObj.curSubForm.GetHashCode()63517797this.GetHashCode()63517797colObj.curSubForm==thistruecolObj.curSubForm.pnlTool==this.pnlToolfalse
解决方案八:
好少用论坛,怎么才能回复到指定的某个兄弟呀?
解决方案九:
curSubForm.pnlTool为nullnull==null返回false
解决方案十:
MessageBox.Show((null==null).ToString());

解决方案十一:
代码如下else{colObj.curSubForm=this;}this.pnlToolContainner.Controls.Clear();this.pnlToolContainner.Controls.Add(colObj.curSubForm.pnlTool);colObj.curSubForm.curActived=true;
解决方案十二:
引用8楼的回复:

curSubForm.pnlTool为nullnull==null返回false

但是为什么curSubForm.pnlTool==null呢?this.pnlTool!=null的;刚刚才curSubForm=this;colObj.curSubForm.GetHashCode()63517797this.GetHashCode()63517797colObj.curSubForm==thistruecolObj.curSubForm.pnlTool==this.pnlToolfalsecolObj.curSubForm.pnlTool==nulltruethis.pnlTool==nullfalse
解决方案十三:
该回复于2012-04-12 10:28:10被版主删除
解决方案十四:
这样就行了,butWhy?我猜是C#中public字段的某些特性造成的;不过这样好像很担心啊,怎么引用啊?else{colObj.curSubForm=this;colObj.curSubForm.pnlTool=this.pnlTool;}this.pnlToolContainner.Controls.Clear();this.pnlToolContainner.Controls.Add(colObj.curSubForm.pnlTool);colObj.curSubForm.curActived=true;
解决方案十五:
该回复于2012-04-12 10:19:55被版主删除
解决方案:
引用12楼的回复:

curSubForm=this;之后curSubForm有没有被再次赋值?

没有的,有再次赋值也不能curSubForm==this了,代码如下,一定是执行elseelse{colObj.curSubForm=this;}this.pnlToolContainner.Controls.Clear();this.pnlToolContainner.Controls.Add(colObj.curSubForm.pnlTool);colObj.curSubForm.curActived=true;
解决方案:
我知道了。很明显,this是一个引用,你赋给curSubForm,并没有再复制一次。所以this.Controls.Clear()当然pnlTool没有了。curSubForm.pnlTool也没有了。
解决方案:
引用16楼的回复:

我知道了。很明显,this是一个引用,你赋给curSubForm,并没有再复制一次。所以this.Controls.Clear()当然pnlTool没有了。curSubForm.pnlTool也没有了。

这个有点道理,不过我没有执行过this.Controls.Clear(),只执行了this.pnlToolContainner.Controls.Clear()况且pnlTool的Owner是this,就算执行了this.Controls.Clear()也只应该把引用从ControlsListremove,this的成员pnlTool是不应该被改变的,只是不在界面上而已.
解决方案:
MSDN曰:可以使用Clear方法从父控件中移除整个控件集合。若要从集合中移除单个控件,请使用Remove或RemoveAt方法。重要事项:调用Clear方法不会从内存中移除控件句柄。必须显式调用Dispose方法才能避免内存泄漏。
解决方案:
儿子引用了老子的东西,不引用了就老子也用不了...太恐怖,也不应该,这样会乱套的!
解决方案:
贴点代码出来
解决方案:
代码贴了好多次了,总结下代码如下:colObj.curSubForm=this;this.pnlToolContainner.Controls.Clear();BreakPoint:this.pnlToolContainner.Controls.Add(colObj.curSubForm.pnlTool);colObj.curSubForm.curActived=true;在BreakPoint停下后即时窗口手动调试结果如下:colObj.curSubForm.GetHashCode()63517797this.GetHashCode()63517797colObj.curSubForm==thistruecolObj.curSubForm.pnlTool==this.pnlToolfalsecolObj.curSubForm.pnlTool==nulltruethis.pnlTool==nullfalse
解决方案:
难道....彻底的沉了?
解决方案:
说真的,我非常有兴趣调试一下你这段代码,但是非常遗憾,在正常环境中是不可能出现这种情况的,所以需要实际调试才有结果。
解决方案:
该回复于2012-04-13 11:06:33被版主删除
解决方案:
引用23楼的回复:

说真的,我非常有兴趣调试一下你这段代码,但是非常遗憾,在正常环境中是不可能出现这种情况的,所以需要实际调试才有结果。

不懂你的意思,我是运行的时候出现这样的情况哦...
解决方案:
引用25楼的回复:

引用23楼的回复:说真的,我非常有兴趣调试一下你这段代码,但是非常遗憾,在正常环境中是不可能出现这种情况的,所以需要实际调试才有结果。不懂你的意思,我是运行的时候出现这样的情况哦...

很明显这种情况是不应该发生的,所以我真想能亲眼看看这个情况。

时间: 2024-09-12 05:43:43

请教大侠,这是为啥,C#入门的相关文章

关于linux上boa移植的先关问题,请教大侠帮忙!

问题描述 关于boa的移植问题:我在linux主机上已经成功编译出了boa可执行文件,将其复制到nfs的/root/bin目录下,对boa.config也做了相关配置,mime.types文件也已经放到/etc目录下,passwd和group文件中也具有nobody和你nogroup用户.此时我将开发板打开,通过nfs启动,cd到bin目录下也可以查看到boa程序,但是在输入/bin$boa时出现以下错误:[01/Jan/1970:00:00:00+0000]boa.c:66-can'topen

我想自己运营一个网站,请教大侠们,谢谢!

问题描述 我想自己运营一个网站,也是第一次运营,请问我需要哪些准备条件,具体如何操作,例如申请域名,在哪里可申请,服务器空间等等,运营过网站的大侠们请指点一下小弟,谢谢! 解决方案 解决方案二:1.服务器托管,分配IP2.托管的地方一般负责域名注册,国内的或国外的3.网站的管理,包括安全,更新,内容更新等4.推广,让更多的人了解网站5.各种网上营销策略,比如搜索引擎营销,能让你的网站被更多的人关注,产品策划,产品包装,渠道及代理政策,收费标准等.6.筹建网络营销团队解决方案三:你可以试一下万网的

请教大侠,在windows 2003和IIS6.0下发布ASP.net网站的问题。

问题描述 在VS开发环境下用浏览器显示网页没有问题.在IIS上配置网站的过程也没有问题,而且能够在远程正常打开网站的首页,但是一进入进入其他网页,要连接自己写的数据库,而不是VS里的ASPNETDB.MDF时,就出现了错误,不能打开网页,错误如下:ServerErrorin'/'Application.--------------------------------------------------------------------------------Userdoesnothaveper

肉鸟请教大侠如何在【菜单栏】上放置【按钮】和【工具栏】

问题描述 就像是word2007里的那种效果,我知道有破解的控件,但我想知道是怎么实现的 解决方案 解决方案二:错了,是标题栏不是菜单栏解决方案三:准确的讲,那个按钮是一半在标题栏,另一半在原来菜单栏的位置解决方案四:目前已知两种方案:1:设成无标题栏,自己画一个假标题栏,再处理事件2:再标题栏和原来菜单栏的位置各"画"出按钮的一半有更省事的方法没?解决方案五:还有一个方案,加一个漂浮的窗体,把控件放里面,在把它浮动到想取的地方解决方案六:该回复于2008-05-09 11:19:48

c++/CLI,源程序没发现错误,但提示库文件错误一大堆。请教大侠。我的QQ:109483730。如能远程帮我看一下,感激不尽。操作系统win7,vs2008

问题描述 1>------Buildstarted:Project:gddlcs,Configuration:DebugWin32------1>Compiling...1>stdafx.cpp1>Compiling...1>MyComplex.cpp1>gddlcs.cpp1>c:programfilesmicrosoftvisualstudio9.0vcincludecodeanalysissourceannotations.h(234):errorC3083

请教大侠:Global里重写的GetVaryByCustomString函数返回的值如何在.aspx.cs页面调用!!

问题描述 我在Global里重写的GetVaryByCustomString()函数返回的字符串如何在.aspx.cs页面调用!! 解决方案 解决方案二:顶起!!!!!!!!!!!!!!!!!!!!解决方案三:ding!!!!!!!!!!!!!!!

请教大侠:vb.net1.1打包的安装文件,如何去掉“是否安装组件和语言包“的提示?

问题描述 在安装时如果遇到没有装.net框架的电脑,会有"是否安装组件"和"是否安装语言包"这样的提示,能不能去掉这个提示,实现静态安装?我的开发环境装有PluginInstaller 解决方案 解决方案二:引用楼主jiuyousoft的回复: 在安装时如果遇到没有装.net框架的电脑,会有"是否安装组件"和"是否安装语言包"这样的提示,能不能去掉这个提示,实现静态安装?我的开发环境装有PluginInstaller 这个可以

请教多线程操作同一个数据表时,怎么避免表死锁

问题描述 最近有一个数据采集的项目,要求可以多路并发,遇到多线程操作同一个数据表的问题,经常发生表死锁,求各位大侠帮忙,大约有20-40个进程实例化读取类,类中Receive方法接收数据并存储上代码publicclassclsTranslateObj{privatevoidReceive(){intlenReceive=0;byte[]receivedByte=newbyte[BUFFER_SIZE];//接收返回字节数组_rtnStr=string.Empty;while(_flgConnec

c++-新人学习C++请教一些小白问题

问题描述 新人学习C++请教一些小白问题 大一学生入门C++,请问刚开始是用什么软件打代码呢?还有能推荐一些书籍吗.请多多指教 解决方案 看你的学习目的.如果你只是应付考试和作业,那么你们的教材用什么,你们老师上课演示和实验上机用什么,你就用什么好了.一些学校还在用vc++ 6.0,甚至turbo c 2.0. 如果你是个人兴趣爱好,但是不准备深入,希望一个简单的环境,那么建议你用dev c++,codeblock,它们比较简单.如果你根本不想安装什么软件,用codepad.org 这个在线编译