2013-02-11 20 views
7

Sto tentando di salvare un record dopo aver lasciato la riga in un DataGridView.DataGridView Salva modifiche su cambio riga

Ho visto soluzioni utilizzare l'evento RowValidated, tuttavia, quando le righe vengono ordinate, il record viene eseguito prima che venga generato l'evento RowValidation. Ho anche tentato di ottenere la riga utilizzando la proprietà Current BindingSource, ma la proprietà corrente è già stata modificata. Lo stesso vale per RowLeaving, credo.

Ho provato a utilizzare direttamente l'evento RowChanged nel datatable e funziona correttamente.

ho finito per usare l'evento RowValidation e ottenere le modifiche dal datatable (GetChange()), ma questo non sembra un'idea.

Inoltre per eliminazioni ho usato l'evento UserDeletingRow, ma anche questo non sembra idea.

Qual è il modo migliore per salvare i record dopo aver lasciato la fila?

risposta

3

avete dato un'occhiata a .RowLeave?

private void dataGridView1_RowEnter(object sender, 
    DataGridViewCellEventArgs e) 
{ 
    for (int i = 0; i < dataGridView1.Rows[e.RowIndex].Cells.Count; i++) 
    { 
     dataGridView1[i, e.RowIndex].Style.BackColor = Color.Yellow; 
    } 
} 

private void dataGridView1_RowLeave(object sender, 
    DataGridViewCellEventArgs e) 
{ 
    for (int i = 0; i < dataGridView1.Rows[e.RowIndex].Cells.Count; i++) 
    { 
     dataGridView1[i, e.RowIndex].Style.BackColor = Color.Empty; 
    } 
} 

fonte: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rowleave.aspx

+2

Non sembra contenere le modifiche durante 'RowLeave'. – user824911

Problemi correlati