在不单击行的情况下获取 DataGridView 列中的最高数字,以在另一个表单上生成 ID 字段。 (C# Windows 表单应用程序)

Get Highest number in DataGridView Column without clicking a row, to generate ID field on another form. (C# Windows Forms App)

我正在尝试获取 DataGridView 列中最大数字的值,以便我可以使用该值 +1 填充单独表单上的文本字段,但我似乎找不到适用于 . Max,或满足此特定需求的解决方案。

根据我对 Python 的有限经验,我似乎记得能够通过使用 [-1] 或类似的东西来获取数组中的最后一个值,c# 有这样的东西吗?

这是我的代码,用于填充第二个表单的文本字段,第一个是 DataGridView 的列值:

public AddPart()
    {
        InitializeComponent();

        MainScreen frm1 = new MainScreen();
        AddPartIDBox.Text = frm1.PartDGV.Rows[0].Cells[0].Value.ToString();

这就是我需要它做的事情,如果我有 ID 0、1,我需要用 2 填充该文本字段,以便它使用下一个可用编号保存新部分。

注意: 将 2 个部分(ID 0 和 ID 1)手动编码为 Program.cs 以添加,部分构造函数使用整数 IncrementID 设置 ID 字段 PartID = IncremementID++;

多亏了 Ryan Wilson,我才能让它正常工作。这是代码片段:

int dgvIndex = (int)frm1.PartDGV.Rows[frm1.PartDGV.Rows.Count - 1].Cells[0].Value; 
        int dgvIndex2 = dgvIndex + 1;
        AddPartIDBox.Text = dgvIndex2.ToString();

如果您的 DataGridView 可以被操纵以重新排列行,最好找到 MAX PartID。您可以通过多种方式实现这一点,但为了用几行代码来完成,我将使用 Linq:

int maxpartid = frm1.PartDGV.Rows.Cast<DataGridViewRow>()
                  .Max(x => Convert.ToInt32(x.Cells[0].Value));