【问题标题】:Converting VB 6 code to VB.NET将 VB 6 代码转换为 VB.NET
【发布时间】:2013-08-01 02:50:23
【问题描述】:

我正在将代码从 VB 6 升级到 VB.NET,下面的代码给了我一个错误:

(VB6.PixelsToTwipsX(mvarPicture.ClientRectangle.Width) - (BDR + X), 
VB6.PixelsToTwipsY(mvarPicture.ClientRectangle.Height) - (BDR + X)),
mvarBorderColor,
B

错误是:

错误 6 预期语句结束。

谁能帮我解决这个问题?


这是完整的代码:

Public Sub Draw()
    Dim BDR, X As Short
    Dim NewX, NewY As Double
    Dim OldX, OldY As Double
    Dim GridHeight, GridWidth As Double
    Dim mvarPictureBox As System.Windows.Forms.PictureBox



    On Error GoTo NoPicBox ' In case the PicBox isn't set yet

    'UPGRADE_ISSUE: PictureBox property mvarPictureBox.AutoRedraw was not upgraded. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="CC4C7EC0-C903-48FC-ACCC-81861D12DA4A"'
    If mvarPicture.AutoRedraw = False Then mvarPicture.AutoRedraw = True
    'UPGRADE_ISSUE: PictureBox method mvarPictureBox.Cls was not upgraded. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="CC4C7EC0-C903-48FC-ACCC-81861D12DA4A"'
    mvarPicture.Cls()

    BDR = mvarPictureBox.BorderStyle
    'UPGRADE_ISSUE: PictureBox property mvarPictureBox.ScaleMode was not upgraded. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="CC4C7EC0-C903-48FC-ACCC-81861D12DA4A"'
    If mvarPicture.ScaleMode <> 3 Then mvarPicture.ScaleMode = 3
    If System.Drawing.ColorTranslator.ToOle(mvarPictureBox.BackColor) <> System.Drawing.ColorTranslator.ToOle(mvarPicBackground) Then mvarPictureBox.BackColor = mvarPicBackground
    If mvarBorderSize > 0 Then
        For X = 0 To mvarBorderSize
            'UPGRADE_ISSUE: PictureBox method mvarPictureBox.Line was not upgraded. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="CC4C7EC0-C903-48FC-ACCC-81861D12DA4A"'
            mvarPicture.Line (X, X) - (VB6.PixelsToTwipsX(mvarPicture.ClientRectangle.Width) - (BDR + X), VB6.PixelsToTwipsY(mvarPicture.ClientRectangle.Height) - (BDR + X)), mvarBorderColor, B
        Next X
    End If

    ' Display Grid On Screen
    If mvarGridVisible = True Then
        For X = 1 To 20
            'UPGRADE_ISSUE: PictureBox method mvarPictureBox.Line was not upgraded. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="CC4C7EC0-C903-48FC-ACCC-81861D12DA4A"'
            mvarPicture.Line (mvarBorderSize, mvarBorderSize) - ((((VB6.PixelsToTwipsX(mvarPictureBox.ClientRectangle.Width) - (mvarBorderSize * 2)) / 20) * X), (VB6.PixelsToTwipsY(mvarPictureBox.ClientRectangle.Height) - (mvarBorderSize * 2))), mvarGridColor, B
        Next X
        For X = 1 To 10
            'UPGRADE_ISSUE: PictureBox method mvarPictureBox.Line was not upgraded. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="CC4C7EC0-C903-48FC-ACCC-81861D12DA4A"'
            mvarPicture.Line (mvarBorderSize, mvarBorderSize) - ((VB6.PixelsToTwipsX(mvarPictureBox.ClientRectangle.Width) - (mvarBorderSize * 2)), (((VB6.PixelsToTwipsY(mvarPictureBox.ClientRectangle.Height) - (mvarBorderSize * 2)) / 10) * X)), mvarGridColor, B
        Next X
    End If

    If mvarDataCollection.Count() > 0 Then
        GridHeight = ((VB6.PixelsToTwipsY(mvarPictureBox.ClientRectangle.Height) - (mvarBorderSize * 2)) / 100) + 0 ' 0-100%
        GridWidth = ((VB6.PixelsToTwipsX(mvarPictureBox.ClientRectangle.Width) - (mvarBorderSize * 2)) / 100) + 0 ' 1-100 Items
        Do
            If mvarDataCollection.Count() > 100 Then mvarDataCollection.Remove(1)
        Loop While mvarDataCollection.Count() > 100

        OldX = mvarBorderSize + 2
        'UPGRADE_WARNING: Couldn't resolve default property of object mvarDataCollection(). Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
        OldY = ((VB6.PixelsToTwipsY(mvarPictureBox.ClientRectangle.Height) - (mvarBorderSize * 2)) - (mvarDataCollection.Item(1) * GridHeight))
        For X = 1 To 100
            NewX = (VB6.PixelsToTwipsX(mvarPictureBox.ClientRectangle.Width) - (mvarBorderSize * 2)) - ((100 - (X - 1)) * GridWidth)
            'UPGRADE_WARNING: Couldn't resolve default property of object mvarDataCollection(). Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
            NewY = ((VB6.PixelsToTwipsY(mvarPictureBox.ClientRectangle.Height) - (mvarBorderSize * 2)) - (mvarDataCollection.Item(X) * GridHeight))
            NewX = NewX + 2
            If NewX < mvarBorderSize Then NewX = mvarBorderSize
            If NewY < mvarBorderSize Then NewY = mvarBorderSize

            'UPGRADE_ISSUE: PictureBox method mvarPictureBox.Line was not upgraded. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="CC4C7EC0-C903-48FC-ACCC-81861D12DA4A"'
            mvarPicture.Line (OldX, OldY) - (NewX, NewY), mvarPicForeground


            OldX = NewX : OldY = NewY
            If OldX < mvarBorderSize Then OldX = mvarBorderSize
            If OldY < mvarBorderSize Then OldY = mvarBorderSize
        Next X
    End If

NoPicBox:
End Sub

【问题讨论】:

  • 让我们再看一遍代码,加上上面和下面的几行......
  • Dim BDR,X 作为 Short Dim NewX,NewY 作为 Double Dim OldX,OldY 作为 Double Dim GridHeight,GridWidth 作为 Double Dim mvarPictureBox 作为 System.Windows.Forms.PictureBox
  • 这也不是有效的 VB6 代码。如果你想将一个长语句打断多行,那么你必须在行尾使用下划线 _。
  • 简单回答;您在这些行的末尾缺少关闭的括号。您的代码中的打开/关闭括号存在巨大差异。

标签: vb.net vb6 vb6-migration


【解决方案1】:

简短的回答,您在这些行中缺少左括号和右括号。

长答案,PictureBox.Line() 在 VB.NET 中不受支持。查看 http://msdn.microsoft.com/en-us/library/9dtfzwyx(v=vs.90).aspxhttp://msdn.microsoft.com/en-us/library/system.drawing.graphics.drawline(v=vs.90).aspx 了解如何在 .NET 中执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 2018-09-16
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多