2015-06-24 2 views
0

У меня есть DataGridView (в приложении winforms) с несколькими столбцами, и я хочу, чтобы некоторые столбцы отображались только в коде. Это работает для всех столбцов, но один, этот один столбец по какой-то причине отказывается становиться только для чтения. Свойство ReadOnly задается в коде, и когда я проверяю свойство, оно читает True, но столбец все еще доступен для редактирования. Что может вызывать такое поведение?datagridview column.readonly не работает для одного столбца

мой код до сих пор:

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; 
    } 

После выполнения этого метода, все столбцы будут только для чтения, за исключением столбца «Причина». Свойство ReadOnly для этого столбца - True, но его можно редактировать.

Кто-нибудь знает причины, почему это может произойти?

EDIT: datagridview привязан к BindingSource, который привязан к DataTable, который заполнен кодом.

EDIT: Подтверждено, что код выполняется

Я поставил кнопку на форме проверить состояние колонки после выполнения SetColumnsReadonly() для чтения свойство столбца имеет значение ИСТИНА, но он по-прежнему доступны для редактирования

+0

Где вы называете 'SetColumnsReadOnly', это столбец« TextBox »? –

+0

buttonclick event – GuidoG

+0

Нечего видеть из кода. Можете ли вы проверить, действительно ли ваша программа вступает в этот метод? Можете ли вы проверить все ссылки «DataGridView», чтобы увидеть, есть ли какие-то манипуляции в другом месте? – rdoubleui

ответ

0

Я смог исправить свою проблему, переместив этот столбец в список. Остается большой мистерий, почему эта колонка вела себя так, и я боюсь, что проблема может когда-нибудь вернуться. Также нет логической причины, по которой перемещение столбца 1 устраняет проблему, за исключением того, что индекс ничего не изменил для этого столбца.

+0

Что происходит, когда вы перемещаетесь его обратно?? – TaW

+0

Я все-таки переместил его (это все равно должно было быть на этом месте), и проблема не вернулась (до сих пор) – GuidoG

+0

Когда вы переместили столбик-нарушитель вверх по индексу, теперь столбец, наследующий старый индекс вторжения, плохое поведение? – OhBeWise

Смежные вопросы