为什么 VS2017 不断丢失我的派生控件?

在我的应用程序中namespace = DRT,我正在创建从其相应的 Windows 控件类派生的控件类(例如,按钮、文本框),例如,


internal abstract class DRT_Button_Abstract : Button

{

    ....

}


internal class DRT_Button_CancelSearch : DRT_Button_Abstract

{

    ....

}


internal class DRT_Button_StartSearch : DRT_Button_Abstract

{

    ....

}

我目前总共有 13 个派生类,它们派生自我的一个抽象或 Windows 控件类。成功构建后,我会在工具箱上看到我的控件类(例如,DRT_Button_CancelSearch和DRT_Button_StartSearch),并且我成功地将它们放到了我的主窗体上。暂时一切正常,但最终,我将打开主 form.cs [Design](即 UI 设计器),它会显示The variable '{control property name}' is either undeclared or was never assigned.我的某些控件组合的错误。


当我检查主窗体 Designer.cs 文件时,所有控件的预期代码都存在,除了预期的new语句。它们不存在于主窗体 Designer.cs 文件中。例如,我希望看到this.drt_Button_CancelSearch = new DRT.DRT_Button_CancelSearch();但它不见了


我尝试忽略错误,进入 UI 设计器窗口重新应用丢失的控件,但问题只是在新应用的控件上重复


到底他妈发生了什么?有没有办法从这种情况中恢复过来?


蓝山帝景
浏览 124回答 1
1回答

胡说叔叔

这很可能是 Designer 无法清除/重新加载其缓存的问题。你能做的并不多。过去我:关闭并重新打开所有具有用户控件的设计器将所有控件放在一个单独的项目中(在同一个解决方案中)将所有控件放在单独的解决方案/Visual Studio 实例中,并设置对控件的 dll(甚至 nuget 包)的正确引用对于前两个选项,我取得了不同程度的成功。重新打开设计器不是很方便,不起作用。最后一个选项是最好的,但也是最烦人的,因为每次调整都需要重新构建项目并更新参考/包。还要确保您创建的所有控件都具有公共默认构造函数并且在使用此构造函数时运行良好。
打开App,查看更多内容
随时随地看视频慕课网APP