Захват события флажка в Windows Forms DataGridview - PullRequest
0 голосов
/ 10 марта 2011

В моем приложении есть Winforms DataGridView.

У меня есть два столбца с флажками и 5 других столбцов из базы данных.Эти два столбца флажков добавляются с помощью DataGridViewCheckBoxColumn.

Когда пользователь нажимает на 2-й флажок, мне нужно показать пользователю сообщение, если первый флажок не установлен для этой строки.

Как мне это сделать?Я пробовал это, но значение ячейки приходит как ноль.Что я делаю не так?

private void dgTest_CellClick(System.Object sender, DataGridViewCellEventArgs e)
{
    DataGridViewCheckBoxCell officialCbCell = row.Cells[1] as DataGridViewCheckBoxCell;
    DataGridViewCheckBoxCell includeCbCell = row.Cells[0] as DataGridViewCheckBoxCell;

    if (officialCbCell != null)
    {
        if (officialCbCell.Value != null && (bool)officialCbCell.Value == true)
        {
            if (includeCbCell != null && (bool)includeCbCell.Value == false)
            {
                MessageBox.Show("INVALID");
            }
        }
    }
}

Спасибо.

Ответы [ 2 ]

7 голосов
/ 10 марта 2011

Вы можете попробовать использовать CellValueChanged событие сетки

void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == 0)
    {
        bool isChecked = (Boolean) dataGridView1[0, e.RowIndex].FormattedValue;

        if (isChecked)
            dataGridView1[1, e.RowIndex].Value = true;
    }
}

если отмечен, то вы можете установить другой столбец как отмеченный или любую другую проверку

1 голос
/ 31 октября 2012
Событие

CellContentClick и свойство cell.EditingCellFormattedValue также полезны, если вы просто отменили / щелкнули ячейку.

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