转移记录

时间:2010-10-02 15:36:46

标签: c#

假设我有一个包含100条记录的数据网格视图

当我选择一条记录时

记录转到Datagridview form2

然后当我回到form1

其他人选择了记录

它也适用于form2,但也有之前的经济衰退

希望form2中的datagridview保持不变

我希望你明白我的意思

1 个答案:

答案 0 :(得分:1)

  1. 在form1中定义Form2变量,该变量指向form2:Form2 Frm2;
  2. 在Form2中定义公共DataTable:Public DataTable Dt;
  3. 在表单加载事件中初始化Frm2和dt:

    private void Form1_Load(object sender, EventArgs e)
    {
      this.Frm2 = new Form2();
      this.Frm2.Dt = new DataTable();
    }
    
  4. 以下是完成工作的地方:

        public void AddRowInDataTable(int SelectedIndex)
    {
        //Add the columns
        DataColumn col = null;
        //For each columns in the datagridveiw add a new column to data table
        foreach (DataGridViewColumn dgvCol in dataGridView1.Columns)
        {
            col = new DataColumn(dgvCol.Name);
            if (!Frm2.dt.Columns.Contains(dgvCol.Name))
                Frm2.dt.Columns.Add(col);
        }
        //Add the selected row from the datagridview
        DataRow row = null;
        row = Frm2.dt.Rows.Add();
        foreach (DataGridViewColumn column in dataGridView1.Columns)
        {
            row[column.Index] = dataGridView1.Rows[SelectedIndex].Cells[column.Index].Value;
        }
    }  
    
  5. 处理form1的dataGridView1的事件OnCellClick

    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
     AddRowInDataTable(e.RowIndex);
     Frm2.ShowDialog();  
    }