【问题标题】:DataGridView Missing RowsDataGridView 缺少行
【发布时间】:2014-03-05 09:29:06
【问题描述】:

我正在尝试向 DataGridView 添加一些行。

超过第 12 行后,它停止显示。

当我通过调试器进入时,我可以看到我的 DGV 包含所有行。它们只是没有显示出来。

我已经尝试过相当于快速踢它(移动焦点,将选择移动到最后一项,Application.DoEvents() 等等,但无济于事)。

OtherButton.Focus();
MoveFocusToNext();
_policyDataGrid.Focus();
_policyDataGrid.Rows[_policyDataGrid.Rows.Count - 1].Cells[0].Selected = true;
Application.DoEvents();
_policyDataGrid.Rows[0].Cells[0].Selected = true;
Application.DoEvents();

有人知道解决方法吗?

注意:我看过很多帖子,其中 DataGridView 有一个绑定源,但这个没有。它有很多手动的 Rows.Add()。

【问题讨论】:

    标签: c# winforms datagridview .net-3.5


    【解决方案1】:

    尝试使用 CurrentCell 属性:

    dgv.CurrentCell = dgv.Rows[dgv.Rows.Count - 1].Cells[0];
    

    这是将 AllowUserToAddRows 属性设置为 false。

    【讨论】:

    • 几乎就在那里......新行出现了,它显示在我的 DGV 的底部,但是如果我单击滚动条,它会跳回顶部并且我无法滚动过去的行6个左右。打算尝试重置滚动条...
    • @micahhoover 你一定在某处发生了干扰事情的事件。显然,您必须摆脱那些 Application.DoEvents 调用更改焦点,并且在您发布的问题中,您总是再次“选择”第一行。
    【解决方案2】:

    这最终对我有用:

    _policyDataGrid.ScrollBars = ScrollBars.None;
    _policyDataGrid.ScrollBars = ScrollBars.Vertical;
    

    但是我的应用程序中有一个 Rpc 等待,所以这对其他人来说可能不够实时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-02
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 2021-01-25
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      相关资源
      最近更新 更多