7

在将行保留在DataGridView.

我已经看到使用该RowValidated事件的解决方案,但是,当对行进行排序时,记录会在RowValidation事件触发之前被重新使用。我还尝试使用BindingSourceCurrent 属性获取行,但当前属性已更改。我相信这同样适用于 RowLeaving。

我已经尝试RowChanged直接在数据表上使用该事件,并且确实可以。

我最终使用了该RowValidation事件并从数据表 ( 中获取了更改GetChange()),但这似乎并不重要。

除了删除我使用了该UserDeletingRow事件,但这似乎并不重要。

离开行后保存记录的最佳方法是什么?

4

2 回答 2

5

你试过DataGridView.RowValidating Eventand.IsCurrentRowDirty吗?

    private void dataGridView1_RowValidating(object sender, DataGridViewCellCancelEventArgs e)
    {
        if (dataGridView1.IsCurrentRowDirty)
        {
           //Do stuff
        }
    }
于 2013-02-12T03:19:11.847 回答
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

于 2013-02-12T00:29:46.580 回答