Включение и отключение ячейки в Datagridview - PullRequest
20 голосов
/ 10 марта 2009

Я использую элемент управления DataGridView для отображения некоторых данных. Мне нужно включить некоторые данные и динамически отключить некоторые данные на основе некоторых значений в сетке.

Может кто-нибудь сказать мне, как это сделать?

Ответы [ 3 ]

37 голосов
/ 13 марта 2011

Чтобы «отключить» ячейку, она должна быть доступна только для чтения и выделена серым цветом. Эта функция включает / отключает DataGridViewCell:

    /// <summary>
    /// Toggles the "enabled" status of a cell in a DataGridView. There is no native
    /// support for disabling a cell, hence the need for this method. The disabled state
    /// means that the cell is read-only and grayed out.
    /// </summary>
    /// <param name="dc">Cell to enable/disable</param>
    /// <param name="enabled">Whether the cell is enabled or disabled</param>
    private void enableCell(DataGridViewCell dc, bool enabled) {
        //toggle read-only state
        dc.ReadOnly = !enabled;
        if (enabled)
        {
            //restore cell style to the default value
            dc.Style.BackColor = dc.OwningColumn.DefaultCellStyle.BackColor;
            dc.Style.ForeColor = dc.OwningColumn.DefaultCellStyle.ForeColor;
        }
        else { 
            //gray out the cell
            dc.Style.BackColor = Color.LightGray;
            dc.Style.ForeColor = Color.DarkGray;
        }
    }
15 голосов
/ 10 марта 2009

Вы можете установить определенную строку или ячейку только для чтения, чтобы пользователь не мог изменить значение. Это то, что вы имеете в виду?

dataGridView1.Rows[0].ReadOnly = true;
dataGridView1.Rows[1].Cells[2].ReadOnly = true;
0 голосов
/ 24 мая 2017

Шаг 1:

type form load : -
For i = 0 to Datagridview.columns.count -1
   if i <> 1 then //restricted columns, 'i' is Your column index
    Datagridview.Columns(i).ReadOnly = True
   end if
Next

Шаг 2

type Cellbeginedit
Datagridview.BeginEdit(True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...