http://support.microsoft.com/kb/834614/zh-cn
概要
MicrosoftVisualStudio.NET 或 Visual Studio 2005 客户端应用程序无法捕捉是通过现有 ActiveX 控件 (Microsoft Office Spreadsheet 11.0) 引发事件。
症状
当 Office Spreadsheet 11.0 MicrosoftActiveX 控件引发事件, 托管代码无法捕获这些事件。
原因
OWC 11 .dll 文件的 IChartInterface 接口及其方法上有调度标识符 (DISPID)。 从 IChartInterface 接口, 事件侦听器类派生时重写方法不支持的 IChartInterface 接口 DISPID。 当 Microsoft Office Spreadsheet 11.0 尝试引发事件, 事件侦听器类无法找到 DISPID。
解决方案
要解决此问题, 请按照下列步骤:
1. | OWC 11 .dll 文件上运行 AxImp.exe 工具。
| ||||||||||||||||||||||||||||||
2. | 修改 AxOWC11.cs 文件。 要这样做, 下列步骤来修改生成源代码文件中所有 控件 类和相应 EventMulticaster 类中添加代码。
| ||||||||||||||||||||||||||||||
3. | 编译修改 AxOWC11.cs 文件。
| ||||||||||||||||||||||||||||||
4. | 测试修改 AxOWC11.cs 文件。
| ||||||||||||||||||||||||||||||
5. | 生成并运行应用程序。
|
状态
此行为是设计使然。
更多信息
重现行为步骤
1. | 创建 Windows 应用程序。
| ||||||||
2. | 将 MicrosoftOffice 电子表格 ActiveX 控件添加到窗体 Form 1。
| ||||||||
3. | 将代码添加到 EndEdit 事件。
| ||||||||
4. | 生成应用程序, 然后和运行应用程序。
|
参考
请, 有关访问下列 Microsoft Developer Network (MSDN) Web 站点:
导 Windows 窗体 ActiveX 控件入程序 (Aximp.exe)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpgrfWindowsFormsActiveXControlImporterAximpexe.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpgrfWindowsFormsActiveXControlImporterAximpexe.asp)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpgrfWindowsFormsActiveXControlImporterAximpexe.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpgrfWindowsFormsActiveXControlImporterAximpexe.asp)
Web 组件和控件
http://msdn2.microsoft.com/en-us/library/aa165059(office.10).aspx (http://msdn2.microsoft.com/en-us/library/aa165059(office.10).aspx)
http://msdn2.microsoft.com/en-us/library/aa165059(office.10).aspx (http://msdn2.microsoft.com/en-us/library/aa165059(office.10).aspx)
使用 ActiveX 控件
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcn7/html/vatskworkingwithactivexcontrols.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcn7/html/vatskworkingwithactivexcontrols.asp)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcn7/html/vatskworkingwithactivexcontrols.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcn7/html/vatskworkingwithactivexcontrols.asp)
标准 DISPIDS
http://msdn2.microsoft.com/en-us/library/ms694489.aspx (http://msdn2.microsoft.com/en-us/library/ms694489.aspx)
http://msdn2.microsoft.com/en-us/library/ms694489.aspx (http://msdn2.microsoft.com/en-us/library/ms694489.aspx)
这篇文章中的信息适用于:
• | Microsoft Visual Basic 2005 |
• | Microsoft Visual Basic .NET 2003 Standard Edition |
• | Microsoft Visual Basic .NET 2002 Standard Edition |
• | Microsoft Visual C# 2005 Express Edition |
• | Microsoft Visual C# .NET 2003 Standard Edition |
• | Microsoft Visual C# .NET 2002 Standard Edition |
关键字: | kbvs2005swept kbvs2005applies kbofficewebspread kbdll kbactivexevents kbevent kbprb KB834614 KbMtzh kbmt |
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、