分页通过将大型数据集分成更小的、可管理的页面,在显示大型数据集方面发挥着至关重要的作用。在 Windows 窗体应用程序中,分页允许用户轻松浏览数据网格视图。以下是实现此功能的方法:
使用 BindingNavigator 控件:
此方法涉及使用 BindingNavigator GUI 控件以及 BindingSource 对象。通过将 BindingNavigator 的 DataSource 属性设置为 IListSource 的自定义子类,可以定义分页符。当用户单击“下一页”按钮时,BindingNavigator 会触发 bindingSource1_CurrentChanged 事件。此事件会触发您的代码来获取当前页面所需的记录。
以下是使用 C# 的示例实现:
private const int totalRecords = 43; private const int pageSize = 10; public Form1() { dataGridView1.Columns.Add(new DataGridViewTextBoxColumn { DataPropertyName = "Index" }); bindingNavigator1.BindingSource = bindingSource1; bindingSource1.CurrentChanged += new System.EventHandler(bindingSource1_CurrentChanged); bindingSource1.DataSource = new PageOffsetList(); } private void bindingSource1_CurrentChanged(object sender, EventArgs e) { int offset = (int)bindingSource1.Current; var records = new List<Record>(); for (int i = offset; i < offset + pageSize && i < totalRecords; i++) records.Add(new Record { Index = i }); dataGridView1.DataSource = records; } class PageOffsetList : System.ComponentModel.IListSource { public bool ContainsListCollection { get; protected set; } public System.Collections.IList GetList() { var pageOffsets = new List<int>(); for (int offset = 0; offset < totalRecords; offset += pageSize) pageOffsets.Add(offset); return pageOffsets; } }
以上是如何在 WinForms DataGridView 中实现分页?的详细内容。更多信息请关注PHP中文网其他相关文章!