我对dgv有点小问题。我试图用一个函数的结果填充它,该函数显示文件夹中文件的名称和每个文件的行数。
但由于某种原因我在数据网格上有一个空值,我不知道如何删除它。我一直这样做,没有对vb.net或编码的任何知识,所以任何帮助都会大大贬值
以下是代码:
Imports System
Imports System.Linq
Imports System.Collections
Imports System.IO
Imports System.IO.StreamReader
Imports System.IO.DirectoryInfo
Public Class MainForm
'asigna la var como datatable
Dim results1 As New DataTable
Private Sub Boton_Buscar_Click(sender As System.Object, e As System.EventArgs) Handles Boton_Buscar.Click
'muestra el dialogo y guarda el dir
FBD1.ShowDialog()
TextBox1.Text = FBD1.SelectedPath
FSW1.Path = TextBox1.Text
'indica el datasource al datagrid
Try
DGV1.DataSource = GetLineCount()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
'devuelve archivos y su num de lineas
Public Function GetLineCount() As DataTable
results1.Columns.Add(0)
results1.Columns.Add(1)
'array para los tipos de archivo
Dim MyFileArray As [String]() = New [String](7) {"*.txt", "*.doc", "*.docx", "*.odt", "*.pdf", "*.rtf", _
"*.csv", "*.vb"}
'array para los directorios
Dim MyDirectoryArray As [String]() = New [String](0) {TextBox1.Text}
' loop directorios
For Each sd As [String] In MyDirectoryArray
Dim dir As New DirectoryInfo(sd)
'loop los tipos de archivos
For Each sFileType As [String] In MyFileArray
'loop los archivos ante el contador
For Each file__1 As FileInfo In dir.GetFiles(sFileType)
Dim LineCount = System.IO.File.ReadAllLines(file__1.FullName).Count()
'alimenta el datagrid con los datos nuevos
results1.Rows.Add()
results1.Rows.Add.Item(0) = "FileName: " & file__1.FullName
results1.Rows.Add.Item(1) = "LineCount: " & LineCount
Next
Next
Next
Return results1
End Function
End Class
And here is the output im getting:
非常欢迎任何帮助,祝你有个美好的一天
答案 0 :(得分:1)
您获取空值的原因是您尝试一次按一个单元格添加行。
而不是
results1.Rows.Add()
results1.Rows.Add.Item(0) = "FileName: " & file__1.FullName
results1.Rows.Add.Item(1) = "LineCount: " & LineCount
尝试
results1.Rows.Add("FileName: " & file__1.FullName, "LineCount: " & LineCount)
您当前的代码每次添加三行而不是1行:首先是空行,然后是填充了单元格(0)的行,然后是null,然后是一行为null,然后填充单元格(1)。