DataGridView ячейки только для чтения

Я видел ту же проблему. Я удалил этот файл jar, а затем щелкнул правой кнопкой мыши по проекту, выбрал maven и сделал «обновить проект ...». Баночка была снова загружена, и проблема исчезла.

15
задан 3 June 2009 в 09:24
поделиться

5 ответов

Попробуйте сделать столбец, а не отдельные ячейки, только для чтения перед связыванием данных:

this.dgrid.Columns["colName"].ReadOnly = true;

Если вам нужно сделать для отдельных ячеек в столбце, вы будете нужно зациклить и установить их следующим образом:

this.dgridvwMain.Rows[index].Cells["colName"].ReadOnly = true;
23
ответ дан 1 December 2019 в 02:55
поделиться

Как только столбец станет доступен только для чтения (см. Ответ Рашми), вы можете обработать это событие ...

private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Tab)
    {
        Boolean readOnly = (sender as DataGridView).SelectedCells[0].ReadOnly;

        return;
    }

}

Что получит свойство следующей ячейки только для чтения.

Спасибо

0
ответ дан 1 December 2019 в 02:55
поделиться

Здесь есть очень хороший пример:
http://blogs.msdn.com/netcfteam/archive/2006/04/25/583542.aspx

Вам просто нужно override Paint () , я использовал это на компактной платформе, чтобы изменить цвет фона в зависимости от содержимого ячейки, поэтому в том же примечании у вас не должно возникнуть проблем с установкой их только для чтения.

-2
ответ дан 1 December 2019 в 02:55
поделиться

Я этого не пробовал.

Но вы можете установить для свойства readonly ячейки значение true (согласно Рашми) в событии RowEnter?

Думаю, событие RowEnter должно срабатывать при переходе от одной строки к другой (или должно срабатывать при переходе из ячейки A1 в B3).

Это вообще помогает?

1
ответ дан 1 December 2019 в 02:55
поделиться

Не могли бы вы использовать столбец шаблона вместо связанного столбца с условием доступности поля только для чтения?

Затем вы можете представить метку только для чтения и текстовое поле для редактирования. Ярлыки не будут влиять на ваш индекс вкладок.

<asp:TemplateColumn>
  <ItemTemplate>
<%
    if ( <%# Eval( "ReadOnlyFlag" ) %> )
    { 
%>
    <asp:Label Text="<%# Eval( "BoundColumn" ) %>" />
<%
    }
    else
    {
 %>
    <asp:Textbox Text="<%# Eval( "BoundColumn" ) %>" />
<%
    }
%>
    </ItemTemplate>
</asp:TemplateColumn>
-1
ответ дан 1 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: