Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.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
C# datagridview column.readonly不适用于一列_C#_Winforms_Datagridview - Fatal编程技术网

C# datagridview column.readonly不适用于一列

C# datagridview column.readonly不适用于一列,c#,winforms,datagridview,C#,Winforms,Datagridview,我有一个DataGridView(在winforms应用程序中)和几个列,我想在代码中设置一些列为只读。 这适用于除一列之外的所有列,由于某种原因,这一列拒绝成为只读。属性ReadOnly是在代码中设置的,当我检查该属性时,它将为True,但列仍然是可编辑的。 什么会导致这种行为 到目前为止,我的代码是: private void SetColumnsReadOnly() { bool readOnlyValue = true; // _IsInvoicedPurchase || _Is

我有一个DataGridView(在winforms应用程序中)和几个列,我想在代码中设置一些列为只读。 这适用于除一列之外的所有列,由于某种原因,这一列拒绝成为只读。属性ReadOnly是在代码中设置的,当我检查该属性时,它将为True,但列仍然是可编辑的。 什么会导致这种行为

到目前为止,我的代码是:

private void SetColumnsReadOnly()
{
    bool readOnlyValue = true; // _IsInvoicedPurchase || _IsInvoicedSales;

    gttDataGridViewCar.Columns["ID"].ReadOnly = readOnlyValue;
    gttDataGridViewCar.Columns["Name"].ReadOnly = readOnlyValue;
    gttDataGridViewCar.Columns["Status"].ReadOnly = readOnlyValue;

    // this one does not wants to get readonly !!!!
    gttDataGridViewCar.Columns["Reason"].ReadOnly = readOnlyValue;
    }
执行此方法后,除列“Reason”外,所有列都将是只读的。此列的属性ReadOnly为True,但仍可以编辑

有人知道为什么会发生这种情况吗

编辑: datagridview绑定到BindingSource,BindingSource绑定到用代码填充的DataTable

编辑: 已验证代码是否已执行


我在表单上放置了一个按钮,在执行setColumnsRedonly()后检查列的状态列的只读属性为TRUE,但它仍然是可编辑的

我可以通过将此列在列表中上移一列来解决我的问题。 这篇专栏文章为什么会有这样的表现仍然是一个很大的疑问,我担心有一天这个问题会再次出现。
此外,将列1向上移动也没有任何逻辑原因可以解决问题,除了此列的索引没有任何更改。

您在哪里调用
setcolumnsreadoly
,它是
文本框
列?从提供的代码中看不到太多。你能验证你的程序是否真的进入了这个方法吗?你能检查一下
DataGridView
的所有引用,看看是否还有其他地方进行了一些操作吗?是的,所有代码都已验证,没有比这更多的代码了,因此我无法显示更多,程序会逐步进入代码,您也可能知道,因为正如我所说的,代码对所有其他列都有效,当您将其移回时会发生什么情况??我确实将其移回(无论如何,它必须位于该位置),当您将索引中有问题的列向上移动时,问题不会返回(直到现在),现在继承旧攻击性索引的专栏现在是否表现出同样的不良行为?