Как отключить строку, выбрав значение из comboBox в datagridview? - PullRequest
1 голос
/ 30 мая 2011

enter image description here

Здесь у меня есть имя столбца «Статус», в котором я использую ComboBox, значения которого «Ожидание» и «Доставлено». Теперь я хочу, чтобы, когда пользователь выбирает доставленный из ComboBox, тогда вся строка или этот элемент управления должен быть отключен, чтобы пользователь не мог изменить его снова, и по умолчанию его значение должно быть «Ожидание», как я могу это сделать? Можно ли отключить одну строку в gridview?

Ответы [ 2 ]

2 голосов
/ 30 мая 2011

Вы не можете отключить отдельный ряд. Однако вы можете сделать это только для чтения:

DataGridView1.Rows[rowIndex].ReadOnly = true;

(Это делает строку с индексом rowIndex установленным только для чтения).

В вашем конкретном примере вы захотите обработать событие CellValueChanged представления данных и иметь код в виде:

        void DataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 4 && DataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "Delivered")
            {
                DataGridView1.Rows[e.RowIndex].ReadOnly = true;
            }
        }
0 голосов
/ 30 мая 2011

Вы можете обработать событие RowChanged и сделать что-то вроде

if (Status == 'Delivered')
{
   e.Row.Enabled = False;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...