gpt4 book ai didi

.net - VS2010 中的 WinForms 视觉继承问题

转载 作者:行者123 更新时间:2023-12-05 01:30:05 24 4
gpt4 key购买 nike

有关项目的快速背景知识:它是 C# .Net 4、带有智能客户端工厂的 WinForms,不幸的是还有很多视觉继承。

以下是我正在处理的团队遇到的问题的简要概述,该问题似乎是断断续续的:

有人将打开其中一个客户端模块项目以开始处理其中一个 View ,双击该 View 以打开设计器,Visual Studio 将给他们一个设计时错误,例如:

没有退路;如果您从这里重建而不做以下工作,那么错误仍然存​​在。我们发现的唯一解决方法是清理客户端解决方案,关闭 Visual Studio(您必须这样做),重新打开 Visual Studio 并重建解决方案。下次您尝试打开 View 时,它将起作用。但是错误会再次出现 - 它似乎是在 X 次重建之后(可能只有在您构建解决方案时 View 在设计器中打开时?)

没有人花时间真正深入研究这个问题,目前也没有人有时间!所以我想知道(有点远)是否有人可能知道会发生什么?或者,一旦我们有时间研究这个问题,也许就会知道从哪里开始挖掘?

最佳答案

如果您使用视觉继承,这些问题是生活中的一个事实,它们不可能永远消失。

我在当前项目中大量使用了 UserControl 继承。我曾经经常遇到你描述的问题。随着时间的推移,我已经将设计细化到现在只偶尔发生的地步,我很少需要再进行清理-重新启动-重建舞蹈了。

您的里程可能会有所不同,但我认为我为减少此问题所做的主要工作是摆脱设计时程序集间数据绑定(bind)。

例如,当您将 Bi​​ndingSource 放在窗体上并将其数据源设置为来自另一个程序集的类型时。

(嗯,它总是来自另一个程序集,因为我从来没有在与我的 UI 相同的程序集中定义类型。所以据我所知,程序集间的事情甚至可能不是一个因素。)

无论如何,我最终摆脱了大部分或所有这些设计时绑定(bind),并在运行时设置了所有绑定(bind)。问题已经解决了 99%。它仍然偶尔会发生,但我懒得去尝试解决它。​​

无论您做什么,都不要从通用基类继承表单/控件。这会在 100% 的情况下打破它。如果您需要这样做,可以通过快速搜索找到一种解决方法。

Microsoft 几乎肯定永远不会解决这些问题,因此请习惯它们。

关于.net - VS2010 中的 WinForms 视觉继承问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7806377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com