我正在对已经安装了一些自动滚动代码的 Datagridview 进行修改。:
// snap to most recent entry
if (cnt > 0)
{
this.Invoke(new MethodInvoker(delegate()
{
dgvLog.ClearSelection();
dgvLog.FirstDisplayedScrollingRowIndex = dgvLog.Rows.Count - 1;
dgvLog.Invalidate();
}));
}
但是,此 Datagridview 上有一个复选框列,代表“内部”与“外部”日志条目。
用户要求一种过滤 Datagridview 的方法,以便他们可以查看外部条目或内部条目...或(默认)两者。因此,我为此创建了一组单选按钮。这些按钮只是循环遍历行,检查 bool 值,并将每行设置为 true 或 false。这些看起来运行良好。
但是,当我过滤 Datagridview 以仅显示“内部”条目时,我会得到一个异常:
System.InvalidOperationException:FirstDisplayedScrollingRowIndex 属性无法设置为不可见行。
知道如何在设置 FirstDisplayedScrollingRowIndex 属性时考虑行可见性吗?在我的谷歌搜索中没有找到太多东西。
谢谢!
最佳答案
使用以下内容
int lastRow = dgvLog.Rows.GetLastRow(DataGridViewElementStates.Visible);
if (lastRow >= 0)
dgvLog.FirstDisplayedScrollingRowIndex = lastRow;
关于c# - 如果隐藏某些行,datagridview 自动滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32610178/