加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB6在.NET WinForm上创建ocx?

发布时间:2020-12-17 00:01:44 所属栏目:大数据 来源:网络整理
导读:我继承了一个VB6项目,它有一个带有VB控件的Form(Label等)和 Windows Common控件(Treeview,ImageList等),它看起来像是一个用户控件的理想候选者. 我向同事提到了将其编译为在.NET WinForms项目中使用的ocx ActiveX控件的可能性.由于之前在C项目中使用VB ocx的
我继承了一个VB6项目,它有一个带有VB控件的Form(Label等)和 Windows Common控件(Treeview,ImageList等),它看起来像是一个用户控件的理想候选者.

我向同事提到了将其编译为在.NET WinForms项目中使用的ocx ActiveX控件的可能性.由于之前在C项目中使用VB ocx的经验,他们有点惊骇:在原型设计阶段一切都很好但是当用于实际时有时间和刷新问题(对话框上的许多控件,控件之间的选项卡,停用然后激活对话框等).

有没有人有任何在.NET Windows窗体上使用VB6编写的ocx的经验?我可以期待微妙的问题,还是他们一起玩得很好?

我很乐意从.NET开始 – > VB 6.0使用Microsoft的 Interop Forms Toolkit 2.0就是为了这个目的.我做了很多次.走另一条路可能会很痛苦.

你的同事关心的是非常真实的.出现的问题是哪个控制集中在哪个时间以及如何在引擎盖下处理某些想法.一个主要的例子是跨越控件.

考虑到你有一个带有一些.NET控件和一个VB 6 Active X的.NET表单.这个ActiveX也有控件.现在,当您在.NET表单中进行选项卡时,当您访问ActiveX时,您会希望在ActiveX中的所有控件中进行选项卡,但您没有!您将立即选中整个ActiveX控件.这是个问题.

现在,如果你要反过来,VB 6.0中的.NET,你必须在代码中满足这种行为.这个CodeProject article,有一个名为ActiveXHelpers的优秀类,就是这样做的.但基本上它归结为手动处理KeyPressed事件,检查选项卡或移位选项卡,以及手动聚焦下一个/上一个控件.

现在,在您的情况下,您需要修改VB 6代码,使其表现得像这样.在.NET中重写控件很可能不那么费劲.我从来没有经历过和令人耳目一新的问题,但就像我说我只是去了.NET – > VB不是相反的方式.无论哪种方式都可能涉及很多痛苦,并且您很可能会遇到其他问题,例如沉没事件并告诉VB中设计和运行时之间的区别.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读