【问题标题】:Cannot display custom controls in VS 2008 Designer -- .NETCF无法在 VS 2008 Designer - .NETCF 中显示自定义控件
【发布时间】:2009-05-27 16:45:54
【问题描述】:

我在 Visual Studio 中的 .NETCF windows mobile 项目中显示自定义(继承)控件时遇到问题。该控件在设计器界面上显示为一个灰色框,其中写有类名。

作为一个测试用例,我有一个简单的控件定义为:

public class ucButton2 : Button
{
}

应该就像一个按钮,但它给出了有趣的行为。

过去,我用设计时属性文件解决了这个问题或类似问题。所以我在文件 DTA.xmta 中包含了以下内容

<?xml version="1.0" encoding="utf-16"?>
<Classes xmlns="http://schemas.microsoft.com/VisualStudio/2004/03/SmartDevices/XMTA.xsd">
  <Class Name="MyProject.CustomControls.ucButton2">
    <Description>Testbutton</Description>
    <DesktopCompatible>true</DesktopCompatible>
  </Class>
</Classes>

现在事情变得非常奇怪——我开始在不相关的类型化数据集文件中收到来自 genasm.exe 的编译错误。

根据这篇文章最后一条评论的建议: http://www.simonrhart.com/2008/02/upgrading-your-solutions-to-visual.html

我将 DTA.xmta 更改为具有“嵌入式资源”的构建操作

现在应用程序编译了,但没有任何改变——设计器界面仍然只显示一个带有类名的空框。

我已关闭并重新打开 Visual Studio,以确保不会发生奇怪的缓存——同样的行为。

就像我说的,过去 xmta 文件已经解决了这类问题。但这次没有。但同时,在过去,添加 xmta 文件并不会导致 genasm.exe 在编译时出错。在我的另一个项目中,我的 xmta 文件的构建操作为“无”,而不是“嵌入式资源”。

在运行时,一切正常。这纯粹是一个设计时问题。任何帮助将不胜感激。

【问题讨论】:

  • 我没有添加 XMTA 文件,而是创建了一个类图(在解决方案资源管理器的项目中右键单击,然后单击查看类图),然后单击需要添加自定义属性的类;在属性窗口中,单击 [...] 框,将显示“UcControl 的自定义属性”,例如:DesktopCompatible(true) 或 DesignTimeVisible(true)、Description("uc description")、ToolboxBitmap("namespace. ucControl”)。我没有同质的结果,有时设计师是可见的。

标签: visual-studio-2008 compact-framework rendering user-controls designer


【解决方案1】:

我会说您将 DesktopCompatible(true) 作为自定义属性添加到控件中。见:this post

【讨论】:

  • 链接消失了。该链接未与自定义属性连接
【解决方案2】:

这是因为智能设备控件设计器不支持视觉继承——或者我应该说它显示不丰富。无论是代码缺陷还是设计,它都不像桌面 .NET 控件设计器那样工作。有时会显示,有时不会。

但是您的自定义控件代码仍然可以工作,只是并不总是按预期显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    相关资源
    最近更新 更多