c# - 我可以在未绑定(bind)的 DataGridView 中设置最大行数吗

标签 c# winforms datagridview

我很难相信以前没有人问过这个问题,但它看起来不像已经问过,我的谷歌搜索都是徒劳的。

我可以设置 DataGridView 允许用户添加的最大行数吗? (比如在添加第 10 行后,它将不再显示“新行”行?)。

最佳答案

没有直接的属性可以做到这一点,但你应该能够使用 AllowUserToAddRows 的组合很容易地完成这个属性(property),和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;
        }
    }
}

您还需要处理用户删除行的情况,以确保您允许他们再次添加行。

希望对你有帮助

干杯, 乔希

关于c# - 我可以在未绑定(bind)的 DataGridView 中设置最大行数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5206203/

相关文章:

c# - 如何绕过 Marshal.Copy(32 位)长度限制?

c# - Button.PerformClick 有什么作用?

C# Windows 应用程序窗体到 Html 窗体

.net - 如何在 Datagridview 中选择并滚动到新行?

mysql - Vb.Net 使用组合框过滤 Datagridview

c# - C# 中的 Datagridview - 列的自定义排序

c# - 更改 Treeview WPF 中特定元素的颜色

c# - 自定义 C# DLL 出现 VBA 429 错误

c# - 如何找到哪个矩形最接近一个点

c# - 使用 C# WinForms 在 LocalMachine 注册表字段中创建 DWORD 时遇到问题