如何在 WinCE 紧凑框架 3.5 中标记用户控件的默认事件

本文关键字:用户 控件 事件 默认 WinCE 框架 | 更新日期: 2023-09-27 17:56:47

所以这么多年过去了,我仍然使用 .NET CF 3.5 用 C# 为 Wince 编写程序,并且我有一个自定义控件,其中包含基于 WinForm 控件的自定义事件。我只是似乎找不到 [默认事件] 属性。

我认为这可以以某种方式完成,因为如果没有此属性,人们将如何使用默认事件创建自定义控件,以便在当时在设计器中双击?我正在使用VS2008。有什么想法吗?

谢谢。

如何在 WinCE 紧凑框架 3.5 中标记用户控件的默认事件

据我所知,设计器(显然不在 .NET CF 上运行)使用引擎盖下完整框架中的控件。有某种映射可以使用 DesigntimeAttributes.xmta 为 .NET CF 应用自定义属性。这样,他们就不必将所有设计器移植到 CF。

此链接显示如何使用"查看类图"功能生成DesigntimeAttributes.xmta,此链接包含有关编辑文件的一些其他信息。

简而言之,您可以使用以下内容将DesigntimeAttributes.xmta文件添加到项目中:

<Classes xmlns="http://schemas.microsoft.com/VisualStudio/2004/03/SmartDevices/XMTA.xsd">
  <Class Name="MyProject.MyCustomControl">
    <DefaultEvent>MyDefaultEvent</DefaultEvent>
  </Class>
</Classes>

至于您遇到的genasm.exe错误,此链接包含信息和重现它的步骤。我创建了一个返回SqlCeCommand的方法(我假设这就是您的CommandCollection属性返回的内容)并得到相同的错误。当我更改该方法以返回DbCommand时,错误消失了。

如果您可以侥幸将每个SqlCeCommand都替换为DbCommand(以及该系列中的所有其他类型的),您可能想去那里 - 但是对于仅添加默认事件而言,解决方法似乎非常繁重。