[英]c# How to Copy a row from one DataTable and Insert it in other at a specific position
[英]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
您可以使用委托和事件來做到這一點,您需要在行雙擊時傳遞整個選定的行 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.