为了账号安全,请及时绑定邮箱和手机立即绑定

通过单击按钮为 DataGridView 添加多个附件

通过单击按钮为 DataGridView 添加多个附件

C#
慕森卡 2023-09-09 16:53:25
我编写了这段代码,用于通过单击按钮向 datagridview 添加多个附件,但我一次只能添加一个附件。单击下一个按钮不会添加多个附件,请提供解决方案,谢谢这是我尝试过的代码       OpenFileDialog ofdialog = new OpenFileDialog();        ofdialog.Multiselect = true;        DataTable dt = new DataTable();        dt.Columns.Add("Attachments");        var res = ofdialog.ShowDialog();           string[] filename = ofdialog.FileNames;           string[] sfilename =  ofdialog.SafeFileNames;           foreach (string fn in filename)           {               dt.Rows.Add(fn);           }            dataGridView1.DataSource = dt.DefaultView;            dataGridView1.Columns["Attachments"].Width = 500;
查看完整描述

1 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

最后一行的断点(来自评论):当然,这不能解决问题,但现在您知道它本身DataTable是错误的。现在使用断点继续执行代码。您可以将其设置在线上DataTable dt = new DataTable();并查看上面的行,当将鼠标悬停在 上方时ofdialog,查看它的文件集合FileNames

https://img1.sycdn.imooc.com//64fc333d0001ad7209760477.jpg

OpenFileDialog1.Multiselect = True您应该获得的文件数量等于您在OpenFileDialog.


下一个候选是filename带有断点的数组foreach,检查该数组中的项目数。


这是我用来比较的代码:


C#(转换后):


OpenFileDialogDXF.Title = "Choose your files";

OpenFileDialogDXF.InitialDirectory = @"C:\users\XXXXX\Documents\";

OpenFileDialogDXF.Filter = "DXF Files|*.dxf";

OpenFileDialogDXF.Multiselect = true;


if (OpenFileDialogDXF.ShowDialog() == DialogResult.OK)

{

    for (var ir = 0; ir <= OpenFileDialogDXF.FileNames.Count - 1; ir++)

        LoadDXF(OpenFileDialogDXF.FileNames(ir));

}

VB.NET:


Private Sub BtnOpenDxf_Click(sender As Object, e As EventArgs) Handles BtnOpenDxf.Click

    OpenFileDialogDXF.Title = "Choose your files"

    OpenFileDialogDXF.InitialDirectory = "C:\users\XXXXX\Documents\"

    OpenFileDialogDXF.Filter = "DXF Files|*.dxf"

    OpenFileDialogDXF.Multiselect = True


    If OpenFileDialogDXF.ShowDialog() = DialogResult.OK Then

        For ir = 0 To OpenFileDialogDXF.FileNames.Count - 1

            Call LoadDXF(OpenFileDialogDXF.FileNames(ir))

        Next

    End If

我的自定义子程序在哪里LoadDXF处理每个文件。


编辑:


考虑一下您的代码,如果OpenFileDialog获得多个结果,我要查找问题的地方就是这一行:


string[] filename = ofdialog.FileNames;

它可能需要一些转换,例如.ToArray().


查看完整回答
反对 回复 2023-09-09
  • 1 回答
  • 0 关注
  • 52 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信