2010-10-02 3 views
0

Supposons que j'ai un datagridview avec 100 enregistrementsdossiers de transfert

Lorsque je sélectionne un record

dossier aller à la Datagridview form2

Puis, quand je suis revenu à form1

Et d'autres ont préféré un enregistrement

Il va aussi à form2, mais il y a aussi la récession précédente

Vous voulez datagridview dans form2 reste constante

J'espère que vous comprenez ce que je veux dire

+0

Quelle est la question? – ikanobori

+0

Je veux faire transférer Record Form2 à partir de form1 –

Répondre

1
  1. Définir une variable Form2 dans form1 qui pointent vers form2: Form2 Frm2;
  2. Définir un DataTable public à Form2: Public DataTable Dt;
  3. Initilize FRM2 et dt dans votre événement de chargement de formulaire:

    private void Form1_Load(object sender, EventArgs e) 
    { 
        this.Frm2 = new Form2(); 
        this.Frm2.Dt = new DataTable(); 
    } 
    
  4. est ici où il se fait:

    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. handle d'événement OnCellClick de dataGridView1 de form1:

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