VB6.0 程序升级到 VB 2008 相关问题总结

这篇博客总结了VB6.0程序升级到VB2008过程中遇到的问题,包括数组下标调整、控件转换、API函数调用、菜单和子窗体处理、对象序列化以及调试打包等。作者提出了解决方案,如使用COM组件封装API、修改控件数组实现方式等,并强调了VS2008在类关系图和XML编辑器方面的优势。
摘要由CSDN通过智能技术生成

VS 20008在很大程度向VB6老程序员做出了让步,使得VB6程序员升级到.net 比以前要容易得多了。许多地方考虑了VB6升级的问题,如增加了Microsoft.VisualBasic.Compatibility命名空间,在帮助中详细比较了VB 2008 与VB6在各方面的细微差别。VB6中的许多有用函数在VB 2008 中依然可以使用等。在这种情况下,我把我以前用VB6做的一些程序升级到了VB2008 ,下面我把升级过程中遇到的一些问题做一下总结.

一、在VB6中允许定义下标不是0的数组,但在VB 2008 中所有的数组下标将全部是0,这将带来很多升级后错误。尤其是一些控件如Listview控件,VB 2008 将COM控件直接升级为对应的.net 控件。但升级后控件下标全部变为0,会带来许多错误,升级后代码也很臃肿,需要优化。如升级前代码:

――――――――――――――――――――――――――――

  Dim i As Long

        Dim totalbytes As Double

        Dim itemx As listItem

        For i = 1 To RTUs.Count

            itemx = ListView1.ListItems(i)

            itemx.Text = RTUs(i).RtuName

            itemx.SubItems(1) = Str(RTUs(i).SendoutByteQty)

            itemx.SubItems(2) = Str(RTUs(i).ReceiveByteQty)

            itemx.SubItems(3) = Str(RTUs(i).SendoutByteQty + RTUs(i).ReceiveByteQty)

            totalbytes = totalbytes + RTUs(i).SendoutByteQty + RTUs(i).ReceiveByteQty

        Next i

        txtTotalbytes.Text = totalbytes

――――――――――――――――――――――――――――――――――――

升级后:

Dim i As Integer

         Dim totalbytes As Double

         Dim itemx As System.Windows.Forms.ListViewItem

        For i = 1 To RTUs.Count

            'UPGRADE_WARNING: 集合ListView1.ListItems 的下限已由1 更改为0。单击以获得更多信息:“ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="A3B628A0-A810-4AE2-BFA2-9E7A29EB9AD0"”

            itemx = ListView1.Items.Item(i)

            itemx.Text = RTUs(i).RtuName

            'UPGRADE_WARNING: 集合itemx 的下限已由1 更改为0。单击以获得更多信息:“ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="A3B628A0-A810-4AE2-BFA2-9E7A29EB9AD0"”

            If itemx.SubItems.Count > 1 Then

                itemx.SubItems(1).Text = Str(RTUs(i).SendoutByteQty)

            Else

                itemx.SubItems.Insert(1, New System.Windows.Forms.ListViewItem.ListViewSubItem(Nothing, Str(RTUs(i).SendoutByteQty)))

            End If

            'UPGRADE_WARNING: 集合itemx 的下限已由1 更改为0。单击以获得更多信息:“ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="A3B628A0-A810-4AE2-BFA2-9E7A29EB9AD0"”

            If itemx.SubItems.Count > 2 Then

                itemx.SubItems(2).Text = Str(RTUs(i).ReceiveByteQty)

            Else

                itemx.SubItems.Insert(2, New System.Windows.Forms.ListViewItem.ListViewSubItem(Nothing, Str(RTUs(i).ReceiveByteQty)))

            End If

            'UPGRADE_WARNING: 集合itemx 的下限已由1 更改为0。单击以获得更多信息:“ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="A3B628A0-A810-4AE2-BFA2-9E7A29EB9AD0"”

            If itemx.SubItems.Count > 3 Then

                itemx.SubItems(3).Text = Str(RTUs(i).SendoutByteQty + RTUs(i).ReceiveByteQty)

            Else

                itemx.SubItems.Insert(3, New System.Windows.Forms.ListViewItem.ListViewSubItem(Nothing, Str(RTUs(i).SendoutByteQty + RTUs(i).ReceiveByteQty)))

            End If

            totalbytes = totalbytes + RTUs(i).SendoutByteQty + RTUs(i).ReceiveByteQty

        Next i

         txtTotalbytes.Text = CStr(totalbytes)

变得很臃肿,而且有错误&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值