Giới hạn số dòng (Row) trong DataGridView

Số lượng dòng (Row) trong DataGridView là không có giới hạn. Tuy nhiên, có những lúc sử dụng DataGridView ta cần giới hạn số dòng được nhập vào trong DataGridView. Lúc đó ta sẽ sử dụng 2 sự kiện (Event) của DatagridView là UserAddedRow và UserDeletedRow để khống chế số lượng dòng của dgv.

Đối với UserAddRows thì chúng ta sẽ xem xét xem số dòng có vượt qua số lượng tối đa mà chúng ta cần hay không?

Đối với UserDeletedRow thì chúng ta sẽ cho phép thêm dòng cho datagridview đó.

Đây là đoạn code dùng để xem xét (checking) số dòng trong datagridview:

public int MaxRows { get; set; }

public LKLimitDataGridView()
{
MaxRows = 5;

InitializeComponent();

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

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

private void CheckRowCount()
{

if (dgv_list.Rows.Count == 1)
return;
if (lkdgv.Rows != null && lkdgv.Rows.Count > MaxRows)
{
lkdgv.AllowUserToAddRows = false;
}
else if (!lkdgv.AllowUserToAddRows)
{
lkdgv.AllowUserToAddRows = true;
}
}

=> Sử dụng thuộc tính AllowUserToAddRows để set quyền thêm dòng cho Datagridview:

(Lưu ý: Trường hợp đặc biệt khi số lượng Rows được giới hạn bằng 1 khi đó người sử dụng xóa dòng duy nhất đi sẽ làm cho chương trình bị overflow do xóa đi 1 record thì chương trình set lại dữ liệu. Tuy nhiên, chương trình lại tự động thêm vào record mới để adding new làm thành vòng lặp vô hạn. Cần lưu ý trường hợp này)

Tagged: , , , , , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: