动态DataGridView在单元格事件args中引用

问题描述 投票:2回答:1

所以我有一个带有4个DataGrids的表单应用程序,并且我有一个rowleave事件,在更改单元格时触发,以替换backcolor,直到更改保存到数据库。我正在尝试编写它,以便所有4个网格可以使用相同的事件,而不是使用不同的网格名称写入相同的事件4次。单元格更改事件在所有网格中都能正常工作,但行离开事件却没有。这是我到目前为止所拥有的:

private void gridNewBusinessPotential_RowLeave(object sender, DataGridViewCellEventArgs e)
{
    var gridList = new List<DataGridView>();

    DataGridView[] grids = {gridBusinessAgentSuppression,
        gridBusinessFollowUpSuppressionData,
        gridFollowUpDescription,
        gridNewBusinessPotential};

    gridList.AddRange(grids);

    var focusedGrid = from dg in gridList
                      where Focused == true
                      select dg;

    focusedGrid.FirstOrDefault().Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Bisque;
}

我在运行时遇到错误,说focusedGrid没有设置为对象的实例。如果有人知道更好的方法来实现这一目标,请通知我。否则,非常感谢任何和所有帮助。

c# .net visual-studio winforms
1个回答
1
投票

sender对象告诉你你正在做什么网格(包括那个关注的网格),那么为什么不用它呢?

private void gridNewBusinessPotential_RowLeave(object sender, DataGridViewCellEventArgs e)
{
    (sender as DataGridView)?.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Bisque;
}
© www.soinside.com 2019 - 2024. All rights reserved.