我目前正在编写反病毒编码,因此对其进行编码和设计非常复杂。无论如何,前几天我遇到了一个问题,我的ListBox没有显示所选驱动器/目录中的所有文件。
我会提供一些代码和图片,以便您明白这一点。
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
ListBox1.Items.Clear()
ListBox3.Items.Clear()
FolderBrowserDialog1.SelectedPath = Path.GetPathRoot(Environment.SystemDirectory) & "Boot\"
On Error Resume Next
For Each strDir As String In System.IO.Directory.GetDirectories(FolderBrowserDialog1.SelectedPath)
For Each strFile As String In System.IO.Directory.GetFiles(strDir)
ListBox1.Items.Add(strFile)
ListBox3.Items.Add(strFile)
Next
Next
Timer1.Start()
End Sub
但是,它不是出现在ListBox(ListBox3)中的文件,而只是一个黑屏。也许我应该删除被它包围的TabControl?
See how it's black? It even happens when I run it.
希望这有帮助!如果您需要更多信息,请发表评论。
答案 0 :(得分:-1)
您可能希望通过创建代码并标准化代码来简化事件,而不是直接将其嵌入到按钮单击中。我已经创建了一个如何动态加载目录和文件的工作示例。
我还建议做一个单独的实验,你可以轻松地将一个测试项目放在一起,以隔离有问题的目录和你想要实现的布局。可能是在调试过程中还有其他事件导致噪音。
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
load_dirs(ListBox2, "H:\")
End Sub
Sub load_files(LB As ListBox,
IO_dir As String)
Dim Files_ = IO.Directory.GetFiles(IO_dir)
With LB.Items
.Clear()
.AddRange(Files_)
End With
End Sub
Sub load_dirs(LB As ListBox,
IO_dir As String)
Dim dir_ = IO.Directory.GetDirectories(IO_dir)
With LB.Items
.Clear()
.AddRange(dir_)
End With
End Sub
Private Sub ListBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox2.SelectedIndexChanged
Try
Dim lb As ListBox = sender
load_files(ListBox1, lb.SelectedItem)
Catch ex As Exception
End Try
End Sub
End Class