簡體   English   中英

使用按鈕單擊為DataGridView添加多個附件

[英]Adding Multiple attachments for a DataGridView with Button Click

我編寫此代碼是通過單擊按鈕將多個附件添加到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;

最后一行的斷點(來自注釋):當然,這不能解決問題,但是現在您知道DataTable本身是錯誤的。 現在,使用斷點繼續執行代碼。 您可以在DataTable dt = new DataTable();上設置它DataTable dt = new DataTable(); 並查看上方的行,將ofdialog懸停在ofdialog上方時,查看其在FileNames的文件集合。

在此處輸入圖片說明

使用OpenFileDialog1.Multiselect = True您應該獲得的文件數量等於在OpenFileDialog選擇的文件數量。

下一個候選對象是斷點位於foreach上的filename數組,檢查該數組中的項目數。

這是我用於比較的代碼:

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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM