如何從VB6遷移到VB.NET相關(guān)問題解決方案-創(chuàng)新互聯(lián)

Visual Basic相信是很多程序員接觸的第一個開發(fā)環(huán)境,當然多年后想遷移到Visual Basic.NET還是需要一定的處理工作的。本文將為大家介紹遷移的過程。51CTO向您推薦《VB.NET教程 - Visual Basic.NET開發(fā)指南》

    在工作中,可能會碰到需要將VB編寫的代碼遷移到VB.NET的情況,有好多細節(jié)需要處理。好在互聯(lián)網(wǎng)發(fā)展了這么多年,好多問題在互聯(lián)網(wǎng)上都有答案,所以需要的時候搜索一下就能解決。    本人也碰到了從VB遷移到VB.NET的情況,現(xiàn)將碰到的問題及其解決方法或替代方法做一個總結(jié),方便后來人。

    首先,建議看一下這篇英文文章《Converting VB6 to VB.NET》講述了一般的遷移步驟。

    其次,下載Microsoft Visual Basic Power Packs 并安裝,這樣在使用向?qū)B6的代碼遷移到VB.NET之后,能"消滅"不少編譯錯誤。

    據(jù)說VB Power Packs 10.0 已經(jīng)發(fā)布了,感興趣的讀者請自行搜索。

    之后就是各種瑣碎的問題,只能碰到一個,解決一個。

    問題:NewIndex 不是"System.Windows.Forms.ListBox"的成員

    方法一:

    Dim x As Integer x = ListBox.Items.Add(rsDates.Fields("fd")。Value)  ListBox.SelectedIndex = x

    方法二:

    ListBox.Items.Add(rsDates.Fields("fd")。Value)  ListBox.SelectedIndex=ListBox.Items.Count-1

    問題:If App.PrevInstance Then '   程序已經(jīng)運行

    方法:

    If Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName)。Length > 1 Then

    問題:Unload()

    方法:從理論上來講,VB.NET有垃圾收集機制,所以不用主動的注銷對象,直接注釋掉就行(沒有經(jīng)過嚴格驗證)

    問題:需要對程序集"mscomctl, Version=10.0.4504.0, Culture=neutral, PublicKeyToken……

    原因:引用了office控件

    方法:安裝VS的"visual studio tools for Office",安裝Office200*的".net可編程支持"

    問題:PictureBox.cls()

    方法:PictureBox.Refresh()

    問題:DateTime.dateDiff()

    方法:DateAndTime.DateDiff()

    問題:在狀態(tài)欄動態(tài)添加panel

    Dim x As Integer x = StatusBar.Panels.Count  StatusBar.Panels.Add x, string1, string2  StatusBar.Panels.Add x + 1, string1, string2

    升級向?qū)⒋a變?yōu)椋?br />
    StatusBar.Items.Add(New System.Windows.Forms.ToolStripStatusLabel(Integer, string1, string2))

    方法:手工修改為

    StatusBar.Items.Add(New System.Windows.Forms.ToolStripStatusLabel(string))  StatusBar.Items.Item(StatusBar.Items.Count - 1)。Text = string

    問題:"PaintPicture"不是"System.Windows.Forms.PictureBox"的成員。

    方法一:

    Dim g As Graphics = Picture1.CreateGraphics()  g.DrawImage(pic, x, y)

    這種方法,每次PictureBox重繪的時候,圖片會消失

    方法二:

    Private blankBitmap As Bitmap  blankBitmap = New Bitmap(70 * 12, maxRow * 12)  Picture1.Image = blankBitmap  Dim g As Graphics  g = Graphics.FromImage(Picture1.Image)  g.DrawImage(pic, x, y)

    這種方法,每次PictureBox重繪的時候,圖片不會消失

    問題:LenB()

    方法一:

    Public Function LenB(ByVal oString As String) As Integer Dim strArray() As Byte Dim Strlen As Integer Dim MyEncoder As System.Text.Encoding = System.Text.Encoding.Default strArray = MyEncoder.GetBytes(oString)  Strlen = strArray.Length  Return Strlen  End Function

    方法二:

    System.Text.Encoding.GetEncoding("GB2312")。GetByteCount(strMsg)

    問題:VB6.LoadResPicture("pictureName", VB6.LoadResConstants.ResBitmap)

    方法:Me.BackgroundImage = My.Resources.bmpBCSSTART

    問題:on error ***

    建議:盡量替換成try catch

    問題:背景色

    如果某個按鈕設(shè)置了背景色,尤其是在enter或leave事件中設(shè)置背景色,從VB6轉(zhuǎn)到VB.NET之后,原來沒有設(shè)置背景色的按鈕,也會自動添加背景色

    方法:手動搜索代碼,關(guān)鍵字"backgroundColor",然后一一修改

    問題:同樣的字體和字號,在VB6和VB.NET的界面上占的空間大小有細微差別

    方法:把所有界面都檢查一遍

    問題:TAB頁使用了ActiveX控件xxx

    解決:替換成。net中的TAB頁

    問題:Base64編碼與解碼

    方法:

    編碼

    Dim x As Byte()   x = System.Text.Encoding.ASCII.GetBytes(s)  Encrypt = Convert.ToBase64String(x)

    解碼

    Dim x As Byte()  x = Convert.FromBase64String(s)  Decrypt = System.Text.Encoding.ASCII.GetString(x)
    更多http://www.cnblogs.com/yeilsoiaisn/
    問題:某個對話框框一閃而過

    方法:將Form_Activated中的代碼轉(zhuǎn)移到Form_load中,將Form_Activated注釋掉

    問題:將ICO轉(zhuǎn)為bmp

    VB6.ImageToIPictureDisp(VB6.LoadResPicture("ico", 1))

    方法:My.Resources.ico***.ToBitmap()

    問題:窗體居中

    方法:設(shè)置窗體的屬性即可

    問題:訪問數(shù)據(jù)庫時,IsNull()

    方法:isDBNull()

    問題: data report

    方法: 替換成crystal report、RDLC及其他報表控件,需要重寫代碼

創(chuàng)新互聯(lián)主營廣靈網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),廣靈h5成都小程序開發(fā)搭建,廣靈網(wǎng)站營銷推廣歡迎廣靈等地區(qū)企業(yè)咨詢

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。

新聞名稱:如何從VB6遷移到VB.NET相關(guān)問題解決方案-創(chuàng)新互聯(lián)
標題來源:http://bm7419.com/article2/hdoic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、品牌網(wǎng)站設(shè)計、建站公司自適應(yīng)網(wǎng)站、做網(wǎng)站網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名