使用c#计算datagridview中的行数

本文关键字:datagridview 计算 使用 | 更新日期: 2023-09-27 18:27:23

我使用以下代码来计算数据网格行数,但它只适用于按钮。我想要一个文本框中的总行数,但它不会随着行数的增加而自行递增。

int numRows = dataGridView1.Rows.Count;
txtTotalItem.Text = numRows.ToString();

使用c#计算datagridview中的行数

分配数字时,文本框将只显示该数字,不会更新。

您可以使用事件并将新编号分配给文本框。

dataGridView1.RowsAdded+=(s,a)=>OnRowNumberChanged;
private void OnRowNumberChanged()
{
    txtTotalItem.Text = dataGridView1.Rows.Count.ToString();
}

Equalsk的回答之后,还需要为删除的行设置事件。您可以使用相同的功能订阅这两个事件,因为您只需要检查数字。

dataGridView1.RowsRemoved+=(s,a)=>OnRowNumberChanged();

如果我正确理解您的问题,您希望在添加或删除行时自动更改TextBox值,因为此时您必须按下按钮进行刷新。我说得对吗?

如果是这样,只需订阅.RowsAddd和.RowsRemoved事件并从那里更新TextBox。

dataGridView1.RowsAdded += RowsAdded;
dataGridView1.RowsRemoved += RowsRemoved;
private void RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
    txtTotalItem.Text = dataGridView1.Rows.Count.ToString();
}
private void RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
{
    txtTotalItem.Text = dataGridView1.Rows.Count.ToString();
}

数据网格视图将计算最后一个空行,因此请确保

查找datagridview的AllowUserToAddRows属性并将其设置为False。

或者将其添加到您的代码中,在我的情况下,我使用了一个标签,并将其命名为labelTotalResult,如果您想将属性保持为真正的,请执行此操作

                    labelTotalResult.Text = (dataGridView1.RowCount - 1).ToString();