繁体   English   中英

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

[英]Why does VS2017 keep losing my derived controls?

在我的应用程序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_CancelSearchDRT_Button_StartSearch ),并成功地将它们放到了主窗体中。 暂时一切都很好,但是最终,我将打开主窗体。cs[设计](即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设计器窗口以重新应用丢失的控件,但是问题仅在新应用的控件中重复出现

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

这很可能是设计器无法清除/重新加载其缓存的问题。 您无能为力。 过去我:

  • 关闭并重新打开所有具有用户控件的设计器
  • 将所有控件放在单独的项目中(在同一解决方案中)
  • 将所有控件放在单独的解决方案/ Visual Studio实例中,并为控件的dll(甚至nuget包)设置适当的引用

使用前两个选项,我获得了不同的成功。 重新打开设计器不是很方便,并且不起作用。

最后一个选项是最好的,但也是最烦人的,因为每次调整都需要重建项目并更新参考/软件包。

还要确保您创建的所有控件都具有公共默认构造函数,并且在使用此构造函数时可以正常运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM