VB.NET实现批量选中三个文本文件同步加载至三个DataGridView
解决VB.NET批量加载三个文本文件到对应DataGridView的问题
原代码存在的问题
- 未开启OpenFileDialog的多选功能,只能选择单个文件
- 将单个文件的内容重复添加到三个DataGridView,无法实现“分别加载”的需求
- 未处理选中文件数量不等于3的异常情况
- 未过滤读取文件时的空白行,可能导致DataGridView出现无效空行
修正后的实现代码
Private Sub PictureBox1_Click_1(sender As Object, e As EventArgs) Handles PictureBox1.Click ' 配置文件选择对话框支持多选 OpenFileDialog1.Multiselect = True ' 设置仅显示文本文件 OpenFileDialog1.Filter = "文本文件 (*.txt)|*.txt" If OpenFileDialog1.ShowDialog = System.Windows.Forms.DialogResult.OK Then ' 校验选中文件数量是否为3 If OpenFileDialog1.FileNames.Length <> 3 Then MessageBox.Show("请选择恰好3个文本文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning) Return End If ' 清空所有DataGridView现有内容 DataGridView1.Rows.Clear() DataGridView2.Rows.Clear() DataGridView3.Rows.Clear() ' 分别加载三个文件到对应DataGridView LoadTextFileToDataGridView(OpenFileDialog1.FileNames(0), DataGridView1) LoadTextFileToDataGridView(OpenFileDialog1.FileNames(1), DataGridView2) LoadTextFileToDataGridView(OpenFileDialog1.FileNames(2), DataGridView3) End If End Sub ' 封装文本文件加载到DataGridView的通用方法 Private Sub LoadTextFileToDataGridView(filePath As String, dgv As DataGridView) Try ' 读取文件所有行,自动适配不同系统的换行符 Dim lines As String() = System.IO.File.ReadAllLines(filePath) For Each line As String In lines ' 跳过空白行 If String.IsNullOrWhiteSpace(line) Then Continue For ' 按制表符分割行内容 Dim columns As String() = line.Split(ControlChars.Tab) ' 将分割后的内容添加到DataGridView dgv.Rows.Add(columns) Next Catch ex As Exception MessageBox.Show($"加载文件失败:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub
代码说明
- 开启多选功能:通过
OpenFileDialog1.Multiselect = True允许一次性选择多个文件 - 数量校验:提前判断选中文件数量,避免不符合需求的操作
- 通用加载方法:把文件加载逻辑封装成独立方法,减少重复代码,方便后续维护
- 异常处理:捕获文件读取时的异常,给出明确的错误提示
- 空白行过滤:跳过文件中的空白行,避免DataGridView出现无效空行
内容的提问来源于stack exchange,提问作者AYANWALE LUKMON
相关产品推荐
相关产品推荐

