我有一个包含多个列的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但仍然可以编辑
答案 0 :(得分:0)
我能够通过在列表中将此列向上移动来解决我的问题。 为什么这个专栏的表现如此,我担心这个问题有朝一日可能会回归,这仍然是一个很大的问题。 另外,没有任何逻辑上的原因可以解决为什么移动一列修复问题,除了索引没有为此列改变任何内容。