gpt4 book ai didi

c# - Visual Studio 设计器加载失败

转载 作者:太空狗 更新时间:2023-10-30 01:36:10 25 4
gpt4 key购买 nike

在我的应用程序中,我使用了 ScintillaNET DLL 并创建了一个名为 BufferedScintilla 的类,我在其中继承了控件并对其进行了双缓冲。没什么异常,只是正常的 C# 继承...然后,我修改了表单的 Designer.cs 文件并从使用 ScintillaNET.Scintilla() 切换到 BufferedScintilla()。

应用程序加载并按预期工作正常,但 Visual Studio 2013 设计器无法加载,告诉我“无法将 BufferedScintilla 类型的对象转换为类型 ScintillaNET.Scintilla。我尝试了所有方法,清理解决方案并重建,仅重建,调试,关闭并重新启动 Visual Studio 甚至重新启动 PC,但没有任何帮助......Visual Studio Designer 拒绝让我设计我的表单。

再次,该应用程序运行良好,我确信表单上的控件是新的 BufferedScintilla,而不是 ScintillaNET.Scintilla,因为我可以看到效果(它是双缓冲的,我在上面绘制的自定义图形不再 Scintilla ),所以我 100% 确定该应用程序使用继承的组件运行。

我确信这是某种 Visual Studio 的小缺陷,所以我正在寻找一种解决方案,让它让我重新设计我的应用程序。

编辑:澄清一下,同样的事情也发生在 Visual Studio 2013 Update 1 和 Visual Studio 2010 中。我检查了程序集,它是作为 Any CPU 构建的,所以 Visual Studio 设计器应该没有问题......

编辑:由于似乎无法修复此问题(某种错误),我期待有一种方法可以在构建项目之前自动替换 Designer.cs 文件中的行,然后在构建项目之后建成(或未建成)。是否有任何 Visual Studio 工具可以在项目构建之前和构建之后在按下构建按钮后自动替换类中的一些文本?我想替换构造函数和声明,以便在设计时它是 ScintillaNET.Scintilla,而在运行时它是 BufferedScintilla。谢谢!

提前致谢!

瓦利

最佳答案

我遇到了一个与此非常相似的问题,在我的例子中,设计者仍然使用为控件和表单设置的构造函数和加载的事件。在我的例子中,我使用了一个在设计时从未设置过的变量,所以要绕过这个你必须修改你的代码来做这样的事情......

if(this.DesignMode)
{
//DoSomething();
}
else
{
//DoSomethingElse();
}

关于c# - Visual Studio 设计器加载失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22974133/

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