我遇到this sample的问题。我刚下载并运行它(Visual Studio 2010)。 我没有触及任何内容。
对不起语言,它是意大利语。 从上到下,它说:
请注意:
xxx.designer.cs
中移除或者我添加了一些新的事件处理程序来进行控制。我真的不明白发生了什么。
由JT编辑: repro在这里:sdrv.ms/1kIhI5o
Repro步骤:
开放解决方案
选择flowLayoutPanel1控件
运行应用程序
停止申请
现在尝试选择gameWrapper!
结果:
无法再选择gameWrapper控件,它甚至不会显示在表单控件的Property Windows下拉列表中!
答案 0 :(得分:1)
这种情况偶尔发生在我身上。唯一有效的方法是从窗口中删除自定义控件,然后再次添加。
答案 1 :(得分:1)
我已经看到过这种情况会发生在几种情况下。
1)项目获得对自己的引用。
如果您在项目A中有一个usercontrol,并使用该设计将usercontrol添加到项目A中的表单,Visual Studio将添加一个自引用,这将搞砸设计师。
2)为可视元素创建一个抽象基类。
由于无法实例化抽象类,设计器将无法在设计器中创建要渲染的实例。
3)DesignMode bug
如果您使用DesignMode属性来确定UserControls是否应该在Load()之类的事件中加载数据,那么您需要知道如果您将控件嵌套多个深度,DesignMode将会中断。你可以通过键入LicenseManager.UsageMode创建自己的designmode变量来解决这个问题。
答案 2 :(得分:1)
我在你的问题中添加了重复步骤,并且遇到了问题的一半。
Repro步骤:
1.开设解决方案
2.选择flowLayoutPanel1控件
3.请求申请书
4.停止了申请
然后我无法选择gameWrapper控件! gameWrapper控件甚至没有显示在Property Window的表单控件下拉列表中!
我尝试按照您提到的方式添加控件导致问题,我甚至添加了SpinningTriangleControl.cs
用户控件,该控件在屏幕截图中显示为问题 (但它不是' t已包含在上传的repro解决方案中。
要重现无法根据屏幕截图打开的SpinningTriangleControl.cs
用户控件,您只需省略using OhmGame_Level_editor;
命名空间参考:
添加using OhmGame_Level_editor;
允许我打开SpinningTriangleControl.cs用户控件而不会出现设计器错误。
它必须是一个XNA / Visual Studio错误 - 如何控制除了 选择gameWrapper然后运行/停止后 应用程序gameWrapper控件是可见的但不能 选择!
解决方法:强>
我发现当我打开解决方案并锁定gameWrapper控件时,无论是否在运行/停止应用程序时选择它,我都可以选择它。
答案 3 :(得分:0)
通常在创建自定义控件时会出现此类问题。为此构建WinFormsGraphicsDevice并将生成的exe粘贴到您正在使用的Visual Studio版本的以下路径。
C:\ Program Files \ Microsoft Visual Studio \ Common7 \ IDE
重新启动Visual Studio并查看此问题是否已解决。我遇到自定义控件的问题,并以这种方式修复它。希望它也适合你。
答案 4 :(得分:0)
这似乎是由错误的引用造成的。请尝试以下方法: 关闭所有文件。 清理解决方案并重建。 然后找到定义GraphicsDeviceControl类的项目或dll。 删除参考。 重新添加引用,重建。 尝试再次打开控件。
答案 5 :(得分:0)
你应该尝试抛出一些尝试/捕获并使用断点并用它来查找异常。另外我认为你的问题是指像GUI组件一样的东西,如SpriteFont,ContentManager,GraphicsDevice ...例如:
content = new ContentManager(Services, "Content");
spriteBatch = new SpriteBatch(GraphicsDevice);
font = content.Load<SpriteFont>("fontName"); // make sure font was loaded fine.
答案 6 :(得分:0)
我在设计器中遇到了一个问题,其形式继承自其他形式。 设计师根本不想显示它们。 在我的情况下,设计师迷失了,因为没有没有参数的构造函数。编译和执行的代码很好,因为我使用了带有1个参数的构造函数。为了整理一下代码,我尝试删除没有参数的构造函数,但我不得不把它放回去让设计师工作。 您可以尝试在inherited和base控件中设置一个不带参数的构造函数。