Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 还有谁见过这个datagridview bug吗?_Visual Studio_Winforms_Datagridview - Fatal编程技术网

Visual studio 还有谁见过这个datagridview bug吗?

Visual studio 还有谁见过这个datagridview bug吗?,visual-studio,winforms,datagridview,Visual Studio,Winforms,Datagridview,有人能解释一下吗 这很有效 TrandetlDataGridView.ReadOnly = False TrandetlDataGridView.CurrentRow.ReadOnly = True 这是不可能的 TrandetlDataGridView.ReadOnly = True TrandetlDataGridView.CurrentRow.ReadOnly = False 如果网格只读属性设置为true,则DataG

有人能解释一下吗

这很有效

        TrandetlDataGridView.ReadOnly = False
        TrandetlDataGridView.CurrentRow.ReadOnly = True

这是不可能的

        TrandetlDataGridView.ReadOnly = True
        TrandetlDataGridView.CurrentRow.ReadOnly = False

如果网格只读属性设置为
true
,则
DataGridView.ReadOnly
属性将覆盖任何行/列/单元格只读属性。这可以在第二个发布的代码“不”中看到

根据备注部分中的
DataGridViewRow.ReadOnly
属性文档

如果 DataGridView.ReadOnly属性为true

一种可能的解决方案是将“grids”只读属性保留为
false
,然后循环遍历网格行,并将每行的只读属性设置为
true
。然后,它应该像预期的那样工作

下面的例子是用C#编写的,但是使用VB也可以应用相同的思想

首先,使用一种方法在网格中循环,并将每行的只读属性设置为
true

private void SetRowsReadOnly() {
  foreach (DataGridViewRow row in TrandetlDataGridView.Rows) {
    row.ReadOnly = true;
  }
}
然后,使用您的“不工作”示例,将设置grids read only属性替换为调用上述方法,它应该可以按预期工作

private void button2_Click(object sender, EventArgs e) {
  SetRowsReadOnly();
  TrandetlDataGridView.CurrentRow.ReadOnly = false;
}

希望这能有所帮助。

我的问题是,你为什么要做后者?如果当前行总是可编辑的,网格的默认行为基本相同。我不需要使用第一个示例。我只是觉得很有趣,它确实是这样工作的,但不是另一种。谢谢你,我会试试这个,让你知道。这个工作非常好。谢谢你,这让我快发疯了。