datagridview column.readonly不适用于一列

时间:2015-06-24 11:12:35

标签: c# winforms datagridview

我有一个包含多个列的DataGridView(在winforms应用程序中),我想在代码中设置一些readonly列。 这适用于所有列但只有一个,这一列由于某种原因拒绝变为只读。 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;
    }

执行此方法后,除“Column”列外,所有列都是只读的。此列的属性ReadOnly为True,但仍可以编辑。

有人知道为什么会发生这种情况的原因吗?

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

编辑: 验证代码已执行

我在表单上放了一个按钮,在执行SetColumnsReadonly()之后检查列的状态。列的readonly属性为TRUE但仍然可以编辑

1 个答案:

答案 0 :(得分:0)

我能够通过在列表中将此列向上移动来解决我的问题。 为什么这个专栏的表现如此,我担心这个问题有朝一日可能会回归,这仍然是一个很大的问题。 另外,没有任何逻辑上的原因可以解决为什么移动一列修复问题,除了索引没有为此列改变任何内容。