用用户控件封装,OCX控件, ocx控件的事件不能在 用户控件中 触发,
哪位遇到过类似的问题, 是否可以解决,, 如何解决??
感激!
哪位遇到过类似的问题, 是否可以解决,, 如何解决??
感激!
解决方案 »
- 请教C#中ref与out的用法
- 请问,如何将listBox1的Items转换成List<T>
- vs 2003开发的项目怎么在vs2010打开
- 想做一个小软件,怕做不好。不知道具体流程是什么。
- C#泛型类如何重载运算符 等ing
- Socket send 的时候,如何标记该条消息结束
- 我写了一个类(class1.cs中) ,如何在窗体中使用这个类?
- DOM操作XML的数据结果存在疑惑
- 在datagridview中日期排序问题,得到正解立即结贴,谢谢大家
- 可否在 C# 里面通过程序设置,只有当用户登录 Windows 的时候才让用 C# 开发出来的服务 (Windows Service) 自动启动?
- xmlTextReader是否不能读取中文?
- 关于datagrip的问题
tlbimp mydll.ocx /out:my.dll
my就是命名空间的名字,你引用后,然后在程序里,using my;就OK了。
按你说的方法之后. 建成的 用户控件(当然是引用转换后的dll) 不能被主程序创建实例
出现 异常为"未指定的错误"
还请大侠继续指点!!!
多谢!
不是这样:
那时肯定的,OCX控件是在客户端运行的,怎么能触发用户控件中的事件呢?而是 触发ocx中的事件 (则用户控件触发ocx中的事件)
可是执行时出现错误:
其他信息: 未能从程序集 jjjj, Version=1.0.2159.31020, Culture=neutral, PublicKeyToken=null 中加载类型 AxXXXLib.AxXXX。
((System.ComponentModel.ISupportInitialize)XXXXXX).BeginInit();
this.Controls.Add(XXXXXX);
((System.ComponentModel.ISupportInitialize)XXXXXX).EndInit();
按你的方法在 用户控件 中封装之后,
我其他的程序中只要,把用户控件一拖到
主窗体中,马上就出现VS.net2003死去..不知道是什么原因,得继续麻烦这位大侠.
..... xxxx = new xxxx();
((System.ComponentModel.ISupportInitialize)XXXXXX).BeginInit();
this.Controls.Add(XXXXXX);
((System.ComponentModel.ISupportInitialize)XXXXXX).EndInit();这段代码放在用户控件的 load 中,是否正确?!
然后 在load(用户控件的) 中用 new 生成相应的对象,并执行 大侠的((System....)的代码.托到界面: 是拖我建的 [用户控件] (用户控件引用生成的dll)
在没有包含((system...)代码前没有问题...
ax_SwfObjects = new AxShockwaveFlashObjects.AxShockwaveFlash();
((System.ComponentModel.ISupportInitialize)(ax_SwfObjects)).BeginInit();
this.Controls.Add(ax_SwfObjects);
((System.ComponentModel.ISupportInitialize)(ax_SwfObjects)).EndInit();
this.ax_SwfObjects.Dock = System.Windows.Forms.DockStyle.Fill;
this.ax_SwfObjects.Enabled = true;
ax_SwfObjects.Menu = false;
ax_SwfObjects.BeginInit();
ax_SwfObjects.Movie=Application.StartupPath+@"\\test.swf";
if (!File.Exists(ax_SwfObjects.Movie))
MessageBox.Show("在"+Application.StartupPath+"路径下没有找到test.swf影片文件!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
else {
ax_SwfObjects.Show();
ax_SwfObjects.Play();
timer_GetFrameNum.Start();
timer_GetFrameNum.Interval = 30;
}
}
catch(Exception ex) {
MessageBox.Show("错误"+ex.Message,"提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
然后再使用该用户控件看行不行.. 如果可以.那可能就是我引
用的ocx本身的问题.
OCX控件都是客户端调用的呀,我想知道你是怎么在服务端调用的呀?或者客户端调用的方式?