zoukankan      html  css  js  c++  java
  • 让 VS2008 崩溃 的 WinForm 用户控件

    今天,使用VS2008做了一个WinFom的用户控件,编写代码时犯了一个“小小”的错误,确付出了惨重的代价。

    下面就还原一下“案发现场”:

    新建一个Window窗体应用程序项目:

    ControlError0

    向项目中添加一个用户控件:

    ControlError1

    打开UserControl1,向其添加一个TextBox:

    ControlError2

    转到代码,写一个属性Text,在19~23行

    ControlError3
    注意21行中,使用return Text,就是我犯的“小小”错误。它的本意如下:
    ControlError4 
    真正应该返回的textBox1的Text属性。因为这个属性太“简单”了,没放在心上,代码又有智能提示…

    打开Form1,从工具箱中将这个用户控件置入窗体:

    ControlError5

    错误出现了:

    ControlError6 

    点击确定,VS2008就关闭了。

    后记

    为了解决这个问题,我花费了一个多小时的时间!大家不要取笑,我的实际情况要比上述复杂的多:用户控件的代码近千行,而且控件已经置入窗体,错误是编译生成时出现的,而且没有任何提示(VS2008直接关闭)。重复打开项目无数次,一编译就关掉,又来回反复的检查代码…

    其实发生错误的原因很简单,就是一个StackOverflow。

    虽然错误是我犯下的,但微软也有“责任”的,为什么不try/catch一下?为什么不提示详细一些?为什么就突然崩溃(让我也差点崩溃)?

    “小小”错误,惨重的代价,发出来,提醒大家一下。

  • 相关阅读:
    Gradle with Kotlin (二) 项目、Java项目、父子、同级共享代码
    Gradle with Kotlin (一) 安装、DSL、任务、插件
    辛弃疾
    Remote Method Invoke
    Webpack (一) 选项和配置
    《芙蓉女兒誄》
    js 原型链之我见
    js 库
    Gradle
    Spring Boot 入门
  • 原文地址:https://www.cnblogs.com/ldp615/p/vs2008_UserControl_StackOverflowException.html
Copyright © 2011-2022 走看看