1

我在 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 文件的构建操作为“无”,而不是“嵌入式资源”。

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

4

2 回答 2

1

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

于 2011-06-16T13:34:16.390 回答
0

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

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

于 2009-11-13T23:48:58.973 回答