作为一名新手,当然想个平淡无味的窗体增添点乐趣,FLASH就是我的首选.
注册成功FLASH8.OCX以后,试图从工具栏里把它拖出来,却引发一系列奇怪
的错误:
弹出窗口“未能导入activex控件。请确保它已正确注册”。
错误栏显示错误:
警告 1 未能解析依赖 com 引用“stdole, version=7.0.3300.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a”。 project1
警告 2 未能创建类型库“axshockwaveflashobjects”的包装程序集。引发类型为“microsoft.build.tasks.comreferenceresolutionexception”的异常。 axshockwaveflashobjects project1
警告 3 未能找到引用的组件“axshockwaveflashobjects”。未能创建类型库“axshockwaveflashobjects”的包装程序集。引发类型为“microsoft.build.tasks.comreferenceresolutionexception”的异常。
问题在哪呢?不知道!既然都引用了该OCX,就干脆手动写代码把控件实例化,
把他加载到窗体看能否实现!没想到居然成功了!
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FlashPlayer));
AxShockwaveFlashObjects.AxShockwaveFlash flashax = new AxShockwaveFlashObjects.AxShockwaveFlash();
flashax .Enabled = true;
flashax.Location = new System.Drawing.Point(0, 0);
flashax.Name = "ax";
flashax.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("flashax.OcxState")));
flashax.Size = new System.Drawing.Size(this.Width , this.Height);
flashax.TabIndex = 0;
flashax.UseWaitCursor = true;
this.Controls.Add(flashax);
这样子做也觉得太麻烦,把上面的方法用来做自定义组件,就实现了在窗体上的任意拖动,
flashax.Show();