簡體   English   中英

如何通過雙擊行 C# WinForm 將一行數據從一個 gridview 復制到另一個表單上

[英]How to copy row by row data from one gridview to other which is on other form by double click on row C# WinForm

我如何將第一個網格視圖的記錄(逐行)傳輸到單獨表格上的第二個網格視圖通過雙擊第一個....的行。 C# WinForm

圖 1 https://i.stack.imgur.com/O62RD.png

圖 2 https://i.stack.imgur.com/CcLqZ.png

圖 3 https://i.stack.imgur.com/5LEqg.png

您可以使用委托和事件來做到這一點,您需要在行雙擊時傳遞整個選定的行 object

可以通過“CellDoubleClick”事件獲取選中行的數據。

然后使用Application.OpenForms Property獲取Form2的實例。

要訪問Form2中的dgv2,您可以定義一個屬性來實現它。

Form2.cs:

// Define a property to access dgv2
public DataGridView DGV
{
    get { return dataGridView2; }
    set { dataGridView2 = value; }
}

下面是一個簡單的demo,大家可以參考。

Form1.cs:

Form2 form2;

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
    // Get the instance of Form2
    form2 = (Form2)Application.OpenForms["Form2"];

    // Save the selected row's items into a list
    List<string> items = new List<string>();
    for (int i = 0; i < dataGridView1.ColumnCount; i++)
    {
        items.Add(dataGridView1.Rows[e.RowIndex].Cells[i].Value.ToString());
    }

    // Add new data to dgv2
    DataGridViewRow dr = new DataGridViewRow();
    dr.CreateCells(form2.DGV);
    dr.Cells[0].Value = items[0];
    dr.Cells[1].Value = items[1];
    // call the property "DGV" in Form2.cs
    form2.DGV.Rows.Add(dr);
}

private void Form1_Load(object sender, EventArgs e)
{
    // Add some test data into dgv1
    DataTable dt = new DataTable();
    dt.Columns.Add(new DataColumn()
    { ColumnName = "species", DataType = typeof(string) });
    dt.Columns.Add(new DataColumn()
    { ColumnName = "weight", DataType = typeof(string) });
    dt.Rows.Add("Cat", "12");
    dt.Rows.Add("Mouse", "3");
    dt.Rows.Add( "Pig", "308");
    dt.Rows.Add( "Elephant", "1652");
    dataGridView1.DataSource = dt;
}

// Open form2
private void btOpenForm2_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();
    form2.Show();
}

暫無
暫無

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

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