2013-02-11 17 views
7

行をDataGridViewに残した後にレコードを保存しようとしています。DataGridView行変更時に変更を保存する

解決策は、RowValidatedイベントを使用していますが、行がソートされると、RowValidationイベントが発生する前にレコードがソートされます。 BindingSource Currentプロパティを使用して行を取得しようとしましたが、現在のプロパティは既に変更されています。私が信じるRowLeavingにも同じことが当てはまります。

私はデータテーブルでRowChangedイベントを直接使用しようとしましたが、問題なく動作します。

私はRowValidationイベントを使用して終了し、データテーブルから変更を取得(GetChange())が、これはアイデアを思えません。

私はUserDeletingRowイベントを使用した削除用加えて、しかし、再び、これはいないようです行を出た後、レコードを保存するための最良の方法は何なアイデア。

答えて

3

あなたは.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; 
    } 
} 

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

+2

「RowLeave」中に変更が含まれていないようです。 – user824911

関連する問題