gpt4 book ai didi

c# - 如何在 WinCE Compact Framework 3.5 中标记用户控件的默认事件

转载 作者:行者123 更新时间:2023-11-30 17:37:12 24 4
gpt4 key购买 nike

这么多年后,我仍在使用 .NET CF 3.5 在 C# 中为 Wince 编写程序,并且我有一个自定义控件,其中包含基于 WinForm 控件的自定义事件。我只是似乎没有找到 [DefaultEvent] 属性。

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

谢谢。

最佳答案

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

This link显示了如何使用“查看类图”功能生成 DesigntimeAttributes.xmta,并且 this link有一些关于编辑文件的附加信息。

简而言之,您将 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 错误,this link包含信息和重现它的步骤。我创建了一个返回 SqlCeCommand 的方法(我假设这是您的 CommandCollection 属性返回的)并得到相同的错误。当我将该方法更改为返回 DbCommand 时,错误消失了。

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

关于c# - 如何在 WinCE Compact Framework 3.5 中标记用户控件的默认事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38363754/

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