【发布时间】:2011-10-19 15:09:07
【问题描述】:
我想减少用户编辑错误记录的可能性,所以一旦他们开始在 datagridview 中编辑一行,我想隐藏所有行。
我试过了:
foreach (DataGridViewRow dgvr in rdGridView.Rows)
{
if (dgvr.Index != e.RowIndex )
{
dgvr.DefaultCellStyle.BackColor = Color.DarkGray;
dgvr.ReadOnly = true
}
}
但这并不能提供太多保护。
我可以更新 DataView 以仅显示该行并将数据视图再次分配给 datgridview 但这会将焦点从单元格中移出,并且单元格不会进入编辑模式。
在上面的 foreach 循环中执行 dgvr.Visible = false 也会产生异常
【问题讨论】:
-
我会问:为什么要为此使用 DataGridView 呢?看起来更像 ListView 会更合适,具有可编辑的字段。我不认为隐藏所有行的方法是一个很好的解决方案。 ReadOnly 不起作用吗?你说这不是“很大的保护”,但如果他们不能编辑它,那听起来就像你要求的那样。
-
我说它没有太大的保护作用,因为当用户双击它时,它更改 ReadOnly 字段会使单元格退出编辑模式
-
能否将单元格的索引保存在变量 iCurrentCellIndex 中,然后在更改 ReadOnly 后将该单元格放回 EditMode?span>
标签: c# .net winforms datagridview datatable