DataGridView.DisplayedRowCount仅在DataGridView可见时有效
本文关键字:DataGridView 有效 DisplayedRowCount 仅在 | 更新日期: 2023-09-27 18:10:01
DataGridView类型的DisplayedRowCount()如果父窗体或DataGridView本身不可见则返回0。例如,在父表单的构造函数中就是这种情况(参见下面的代码)。是否有一个替代功能,如果datagridview是不可见的,也可以工作?所以我想在让它们可见之前知道它们的可见行数
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
DataGridView dgv = new DataGridView();
public Form1()
{
InitializeComponent();
dgv.Parent = this;
dgv.Columns.Add("col1", "col1");
dgv.Columns.Add("col2", "col2");
for (int i = 0; i < 100; ++i)
dgv.Rows.Add(i, i);
int drc = dgv.DisplayedRowCount(false);
MessageBox.Show(drc.ToString()); // returns 0
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
int drc = dgv.DisplayedRowCount(false);
MessageBox.Show(drc.ToString()); // returns 4
}
}
}
我不认为有一个干净的方法来做到这一点。DataGridView应该如何知道在实际显示之前将显示给用户的确切行数?在这个意义上,DisplayedRowCount()的结果0是绝对正确的。
但是,根据您的需求,您可以使用form显示表单。不透明度设置为0,因此它将对用户不可见。