我正在寻找Sheridan 3D面板(ssPanel)的替代品,我正在试图找出项目中的哪些控件>我可以添加到我的项目中的组件,这将得到Microsoft的支持。 (即,我不想添加MS没有正式“支持”的控件,如MS Forms 2.0对象库)。
更新 Microsoft does still support VB6(或至少是它使用的文件)
答案 0 :(得分:1)
您需要SSPanel行为的哪一部分?
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风格。