如何将ms访问表单嵌入到C#模块中?

前端之家收集整理的这篇文章主要介绍了如何将ms访问表单嵌入到C#模块中?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们开发了相当繁重的ms访问应用程序,大约有300种格式(是的!).由于代码实例化这些形式(并且不仅仅是打开它们),我们可以在屏幕上显示相同形式的多个实例.

为了绕过VBA的局限性,以及一些面向对象的概念(如继承,接口,封装等)的不良实现,代码正在管理:

>从我们表单的所有活动实例中创建的一个窗口集合.
>一个’ghost windows‘对象,其中包含我们的代码所需的所有额外的属性方法.

所以,作为一个例子,当我想达到我的一个实例的标准属性时,我可以写:

MyWindows.accessWindow(hWnd).name

其中hWnd是由Windows给出的句柄,并命名标准的form().name属性

但是如果我想要达到我的一个实例的特定属性,我可以写:

MyWindows.ghostWindow(hWnd).originalRecordset

“originalRecordset”保存原始ADODB.recordset,原来的ADODB.recordset在表单第一次被加载时被加载(意味着在用户进行任何更改之前…可以是有趣的!)

它的工作非常好,但是编码可以是一个真正的PITA,特别是当知道如何在C#中做类似的操作时,只要将MS-Access表单对象封装到更通用的C#对象中即可.所以这是一个问题:可以将MS-Access表单嵌入到自制的C#dll中吗?可行吗

我不期待一个完整的答案,但我希望有一些帮助可以走上正轨.有什么想法吗?

解决方法

这应该通过Office Automation来实现.

简而言之,您使用c#启动您的访问应用程序,然后为您的表单获取正确的对象模型,与在vba中可用的相同.

这可能是第一步,如果你想使用更多的c#(好),少一些vba(meh)逐渐改善/重构你的访问应用程序.

MS KB文章“How to automate Microsoft Access by using Visual C#”中的更多详细信息

原文链接:https://www.f2er.com/html/224285.html

猜你在找的HTML相关文章