詳解令VS2008崩潰的WinForm用戶控件
在使用Visual Studio 2008的過程中,我們會(huì)碰到各種各樣的問題。今天,使用VS2008做了一個(gè)WinFom的用戶控件,編寫代碼時(shí)犯了一個(gè)“小小”的錯(cuò)誤,確付出了慘重的代價(jià)。
下面就還原一下“案發(fā)現(xiàn)場”:
1.新建一個(gè)Window窗體應(yīng)用程序項(xiàng)目:
2.向項(xiàng)目中添加一個(gè)用戶控件:
3.打開UserControl1,向其添加一個(gè)TextBox
4.轉(zhuǎn)到代碼,寫一個(gè)屬性Text,在19~23行
注意21行中,使用return Text,就是我犯的“小小”錯(cuò)誤。它的本意如下:
真正應(yīng)該返回的textBox1的Text屬性。因?yàn)檫@個(gè)屬性太“簡單”了,沒放在心上,代碼又有智能提示…
5.打開Form1,從工具箱中將這個(gè)用戶控件置入窗體:
6.錯(cuò)誤出現(xiàn)了:
點(diǎn)擊確定,VS2008就關(guān)閉了。
為了解決這個(gè)問題,我花費(fèi)了一個(gè)多小時(shí)的時(shí)間!大家不要取笑,我的實(shí)際情況要比上述復(fù)雜的多:用戶控件的代碼近千行,而且控件已經(jīng)置入窗體,錯(cuò)誤是編譯生成時(shí)出現(xiàn)的,而且沒有任何提示(VS2008直接關(guān)閉)。重復(fù)打開項(xiàng)目無數(shù)次,一編譯就關(guān)掉,又來回反復(fù)的檢查代碼…
其實(shí)發(fā)生錯(cuò)誤的原因很簡單,就是一個(gè)StackOverflow。
原文標(biāo)題:讓VS2008崩潰的WinForm用戶控件
鏈接:http://www.cnblogs.com/ldp615/archive/2009/11/25/vs2008_UserControl_StackOverflowException.html