将基本 UserControl 的修饰符设置为受保护时,Visual Studio 崩溃

Posted

技术标签:

【中文标题】将基本 UserControl 的修饰符设置为受保护时,Visual Studio 崩溃【英文标题】:Visual Studio crashes while setting the modifier of base UserControl to protected 【发布时间】:2014-10-25 17:57:28 【问题描述】:

我有一个用户控件类BaseUserControl 和一个派生自BaseUserControl 的类DerivedUserControl。两者都在 Visual Studio 设计器中正确显示,重建解决方案后也是如此。

BaseUserControl 中,我有一个protected 标签和其他protected 控件。我想为派生控件隐藏这个标签。因此,我在用户代码文件以及DerivedUserControl 的设计器代码文件中搜索了它的名称,以保证DerivedUserControl 没有使用它,并且没有发现任何情况。 然后我在BaseUserControl的设计器中设置这个标签的修饰符从protectedprivate来隐藏它。我没有更改任何其他控件,也没有代码文件。

然后我再次重新构建解决方案,并想向DerivedUserControl 的设计者展示。但是现在 Visual Studio 崩溃了。

因此我尝试通过在BaseUserControl 的设计器代码文件中将标签修饰符手动重置为protected 来解决问题。但是,如果我打开 DerivedUserControl 的设计器,尽管重建 Visual Studio 仍然总是崩溃。

我有 Microsoft Visual Studio Ultimate 2012 版本 11.0.61030.00 Update 4 和 Microsoft .NET Framework 版本 4.5.50938。

有没有人解决这个问题的想法?

【问题讨论】:

你得到什么错误?你的意思是视觉工作室崩溃还是你的程序崩溃了? Visual Studio 崩溃,没有任何确切的错误消息。 “Visual Studio 不起作用。”然后它想重新启动自己。 这是受保护的字段或属性吗?如果后者发布代码。 一个简单的标签字段,如果在设计器中创建标签,则由设计器自动生成。 抱歉,不知道。根据我的经验,如果您引用该属性并且该属性导致递归,则会发生这种情况。 【参考方案1】:

看起来BaseUserControl 中使用的一些资源被删除了。现在我再次添加它们并运行。但不幸的是,我不知道它们是如何被删除的,以及为什么 BaseUserControl 可以在设计器中显示而没有任何错误,而不是 DerivedUserControl

【讨论】:

以上是关于将基本 UserControl 的修饰符设置为受保护时,Visual Studio 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:如何仅将修饰符应用于特定元素?

继承接口并设置访问修饰符

java修饰符和基本操作符

从热键中删除自动修饰符

final修饰符

__block修饰符(四)