设置网格视图时获取"No room is available to display rows"。首次显示滚动行索引


gridView.FirstDisplayedScrollingRowIndex = gridView.SelectedRows[0].Index;

炸毁:

没有可用于显示行的空间

DataGridView 是未绑定模式下的自定义控件。 数据网格视图。FirstDisplayScrollingRowIndex 未在基于 datagridview 的特定事件中设置。

行通过gatagridview添加到数据网格视图中。Rows.Add 方法在 DataSet.EndMerge 上,然后逐行设置单元格的样式和格式。清除并恢复最后选定的行,并将滚动条位置恢复到第一个可见行。

尝试找出此异常的实际含义。

if (gridView.Rows.Count > 0)
{
    gridView.ClearSelection();
    T value = GetItemByRow(gridView.Rows[0]);
    bool isVisible = filter.ShouldShow(value);
    gridView.Rows[0].Selected = true;
    if (!isVisible)
    {
        gridView.Rows[0].Visible = true;
        gridView.FirstDisplayedScrollingRowIndex = gridView.SelectedRows[0].Index; 
        gridView.Rows[0].Visible = false;
    }
    else
    {
        gridView.FirstDisplayedScrollingRowIndex = gridView.SelectedRows[0].Index;
    }
}

当网格自动调整为 0 高度(或可能是宽度(并且您设置

dataGridView.FirstDisplayedScrollingRowIndex = 0;

将引发异常。我们的网格已经设置了Dock = Fill,在某些情况下,其大小是看不见的。

我们的解决方法是将 MinimumSize 设置为 100/50,我们再也没有看到异常。即使网格不在窗口内(因此不可见(,现在也不会引发异常。

当网格中存在行但不可见时,将其设置为第一行将引发此异常。

最新更新