无法创建新的堆栈防护页面,怎么办?

 时间:2026-05-05 18:47:29

1、在工具--》选项中关掉IntelliTrace

2、必须看看宽度的属性,以下是部分代码:

public  int Width {            get { return this.Width; }            set { Width = value;


                //此处自定义控件内部的控件的location的设置,如:lable1.location=new Piont(); //为了实现一个联动的效果
               }        }

3、这时菜鸟D注意到代码左侧的提示

无法创建新的堆栈防护页面,怎么办?

1、仔仔细细检查程序内代码问题,只要程序内有死循环就会出现这个问题。

2、在get里面的Width上用F12,发现光标只是向上跳了一行,这个好像不对,感觉有点怪。随即想到既然这是自定义控件,继承Control控件类,控件类里面会不会做了相应的封装。于是,转到定义,以下代码展示继承关系:

public partial class ExControlBox : UserControl, IControlCommonablepublic class UserControl : ContainerControlpublic class ContainerControl : ScrollableControl, IContainerControlpublic class ScrollableControl : Control, IComponent, IDisposablepublic class Control : Component, IDropTarget, ISynchronizeInvoke, IWin32Window, IBindableComponent, IComponent, IDisposable// Control基类中的两个属性public int Width { get; set; }public virtual string Text { get; set; }

3、果然在Control基类里找到Width属性,当看到Text属性时想起曾经使用过override重写过Text属性,那是否可以换一种写法“重写”Width属性?当然可以——new。New 作为运算符用于创建对象和调用构造函数,作为修饰符用于隐藏基类中被继承的成员(出自msdn)。

于是改造了原来的Width属性的写法,也能成功运行没有发生崩溃。代码如下:

new public int Width        {            get { return base.Width; }            set            {                base.Width = value;                //此处自定义控件内部的控件的location的设置,如:lable1.location=new Piont(); //为了实现一个联动的效果            }        }

1、1.在定义属性时,应注意是否该属性已经存在于基类,如果存在,就需要判断是需要重写该属性,还是隐藏该属性。

2、2.递归的调用一定要谨慎,否则可能造成溢出,导致崩溃。

  • 无法创建新的堆栈防护页面,怎么办?
  • 无法创建新的堆栈防护页面,怎么办?
  • 解决Antimalware Service Executable CPU占用高
  • 安装CAD一般出现C++2005问题的解决办法
  • 戴尔G3 3579怎么用U盘启动
  • 热门搜索
    js是什么意思 的反义词是什么 炒米泡水喝有什么功效 晚上睡觉出汗是什么原因男人 隐形飞机是指什么样的飞机 理智是什么意思 兄弟啊想你啦什么歌 css是什么意思 o型血和ab型血生的孩子是什么血型 干事是什么意思