从Microsoft.VisualBasic.Compatibility替换DirListBox和/或FileListBox

时间:2015-06-25 00:13:39

标签: .net .net-4.5 vb6-migration

我有一个已经迁移到VB.net的VB6应用程序,我正在尝试将框架版本升级到4.5 - 它抱怨Microsoft.VisualBasic.Compatibility dll中的所有内容都已过时。我能够相当容易地替换除FileListBox和DirListBox之外的所有东西 - 乏味但我不必创建任何新的控件。

这些控件是否有接近替代品?有谁知道他们是否已经与框架的其余部分一起开源?

2 个答案:

答案 0 :(得分:3)

您可以使用简单的ListBox控件并使用My.Computer.FileSystem将它们设置为旧的DriveListBox,DirectoryListBox和FileListBox。您可以使用以下内容

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    lstDriveList.DataSource = My.Computer.FileSystem.Drives
End Sub

Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstDriveList.SelectedIndexChanged
    lstDirectoryList.DataSource = My.Computer.FileSystem.GetDirectories(lstDriveList.SelectedValue.ToString())
End Sub


Private Sub lstDirectoryList_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lstDirectoryList.SelectedIndexChanged
    lstFileList.DataSource = My.Computer.FileSystem.GetFiles(lstDirectoryList.SelectedValue.ToString())
End Sub

所有的lst都只是普通的ListBoxes,你也可以使用ListView控件,类似的方式。

答案 1 :(得分:0)

不幸的是你必须自己滚动(就像@kman已经踢掉了你)。

此处讨论了一些替代方案:https://social.msdn.microsoft.com/Forums/en-US/b2d13c9a-e320-4f36-981e-e4c1999d7694/vbnet-equivalent-of-vb6-code-which-are-obsolete?forum=vbinterop

有人建议回到Framework 3.5(如果你没有使用4.5功能)花一些时间来编写新的控件