Microsoft支持哪些VB6控件?

时间:2010-01-04 10:52:07

标签: vb6

我正在寻找Sheridan 3D面板(ssPanel)的替代品,我正在试图找出项目中的哪些控件>我可以添加到我的项目中的组件,这将得到Microsoft的支持。 (即,我不想添加MS没有正式“支持”的控件,如MS Forms 2.0对象库)。

更新 Microsoft does still support VB6(或至少是它使用的文件)

4 个答案:

答案 0 :(得分:1)

您需要SSPanel行为的哪一部分?

  • 如果是自定义外观(凸起的3D边缘等),基于内在的VB6标签和线控制来编写用户控件并不太难。在下面放大的屏幕截图中查看SSPanel的边缘。它只是一个像素边框。颜色是系统颜色:左侧和顶部是“按钮突出显示”& H80000014&右边和底部是“按钮阴影”& H80000010&。将四行控件放在用户控件中,并在resize事件中编写代码,将它们移动到控件的边缘。

alt text http://img194.imageshack.us/img194/5376/sspanelzoomin.png

  • 如果您需要一个可以作为容器的标签,您可以让您的用户控件成为一个容器(设置为ControlContainer True)。

  • 垂直居中的文字。副手我不知道这样做的好方法。 Google suggesting使用PictureBox创建用户控件并使用TextHeight方法。

编辑还有另一种方法,我在一些项目中使用它。只是继续使用SSPanel,尽管它不受支持且意识到它的various problems。它似乎在Vista和XP上运行良好 - 尚未在Windows 7上进行过测试。

答案 1 :(得分:1)

没有受支持的控件列表:您必须查看Microsoft支持声明中的list of supported OCX files for VB6。您需要确定哪些控件在那些OCX中。您可以启动一个新的VB6项目,勾选Project-Components中的OCX,并查看工具栏中可用的控件。

忏悔我已经回答了社区Wiki,因为这些信息最初是在对另一个答案的评论中,但现在该答案已被删除。我倾向于回答时感到有点内疚(它说VB6不受支持,这是误导性的。)

答案 2 :(得分:1)

作为扩展MarkJ思想的旁注(我意识到这个问题有点旧,但我最近不得不处理移植一些旧的VB应用程序):在某些情况下,SSPanel被用作具有背景的容器颜色,没有文字。尽管看起来似乎很明显,但Forms.Panel确实可以很好地运行,以避免“Sheridan 3D控件”依赖,并在这些简单的情况下使分发更容易。

VB.net转换器工具可能会生成如下内容:

Public WithEvents ssPanel As AxThreed.AxSSPanel
Me.ssPanel = New AxThreed.AxSSPanel
ssPanel.OcxState = CType(resources.GetObject("ssPanel.OcxState"),
                         System.Windows.Forms.AxHost.State)
CType(Me.ssPanel, System.ComponentModel.ISupportInitialize).EndInit()

很容易改为:

Friend WithEvents ssPanel As System.Windows.Forms.Panel
me.ssPanel = New System.Windows.Forms.Panel
' No longer necessary:
' ssPanel.OcxState
' CType(Me.ssPanel, System.ComponentModel.ISupportInitialize).EndInit()

答案 3 :(得分:-2)

MarkJ的评论让我重新阅读了Q,从“替换”我现在明白这可能是一个重新编码/新版本的项目,而不是从头开始...下面的原始答案不是会计为了那个原因。 同时,MS说它支持一个没有路线图或承诺资源的语言的核心运行时文件(?),所以我的答案的底线仍然存在:vb6停止,新项目可以进入Python,vb.app,java,c ++ ,C#,无论如何。

原件: 没有。 VB6.0达到了寿命终结。去Python吧!或Java,或C#...从不vb .net,因为它比Java更难/更密集,而不是VB6.0语法,并且学习曲线只是C#下的一个档次。

P.S。有负面投票是非常有趣的,因为与java或c#相比,我破坏了vb .net。 我想知道these guys会想到我,成为一名前vb6程序员,而不是转向任何.net风格。