我可以在未绑定的DataGridView中设置最大行数

Cri*_*ole 7 c# datagridview winforms

我发现很难相信以前没有问过这个问题,但它看起来并不像以前一样,我的谷歌搜索一切都是徒劳的.

我可以设置DataGridView允许用户添加的最大行数吗?(就像添加第10行后,它将不再显示"新行"行?).

Jos*_*osh 9

没有直接的属性可以做到这一点,但你应该能够使用AllowUserToAddRows属性和UserAddedRow事件的组合很容易地实现这一点.

一般的想法是添加一个事件处理程序来检查最大允许的行数,然后设置AllowUserToAddRows = false

public partial class frmGridWithRowLimit : Form
{
    public Int32 MaxRows { get; set; }

    public frmGridWithRowLimit()
    {
        MaxRows = 10;

        InitializeComponent();

        dgRowLimit.UserAddedRow += dgRowLimit_RowCountChanged;
        dgRowLimit.UserDeletedRow += dgRowLimit_RowCountChanged;
    }

    private void dgRowLimit_RowCountChanged(object sender, EventArgs e)
    {
        CheckRowCount();
    }

    private void CheckRowCount()
    {
        if (dgRowLimit.Rows != null && dgRowLimit.Rows.Count > MaxRows)
        {
            dgRowLimit.AllowUserToAddRows = false;
        }
        else if (!dgRowLimit.AllowUserToAddRows)
        {
            dgRowLimit.AllowUserToAddRows = true;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

您还希望在用户删除行时进行处理,以确保允许他们再次添加行.

希望这可以帮助

干杯,乔希