从 C# MS Access COMAddIn 在 MS Access 表单上引发事件/调用方法
我有一个 VS 2008 C# MS Access 加载项,我想知道如何在 MS Access 表单上引发事件或调用方法。简而言之,如何从 C# 中引发事件或调用 Microsoft.Office.Interop.Access.Form 对象上的方法,并获取要在 MS Access 端执行的 VBA 代码。请任何人告诉我这样的事情是否可能以及如何进行。
I have an VS 2008 C# MS Access add-in and I wanted to know how I could raise events or call methods on an MS Access form. Simply put, how do I raise an event or call a method on a Microsoft.Office.Interop.Access.Form object from within C# and get the VBA code to execute o the MS Access side. Please anyone, let me know if such a thing is possible and how.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我从来没有找到一个好的解决方案,不得不采取变通办法。如果我在 C# AddIn 代码中保留对 TextBox 的引用,并更改 C# 代码中的 Text 属性,则如果存在与该 TextBox 关联的 VBA 处理程序,则会引发 Change 事件。如果文本值太大,则 Text 属性将不会触发更改事件。因此,该解决方法的解决方法是使用两个文本框;一个用于引发事件(只需将 Text 属性设置为任何文本,例如“事件”一词),另一个 TextBox 将实际数据存储在其 Value 属性中。这很愚蠢,但很有效。
I never found a good solution for this and had to go with a work-around. If I keep a reference to a TextBox in my C# AddIn code and I change the Text property within my C# code, if there is a VBA handler associated with that TextBox, the Change event will be raised. The Text property will not fire the change event if the text value is too great. So a work-around for that work-around is to use two TextBoxes; one to raise the event (just set the Text property to any text like the word "event") and another TextBox that stores the actual data in it's Value property. This is stupid but it works.