Инициирование флажка оценивает измененное событие в DataGridView

У меня есть представление сетки, которое имеет столбец флажка, и я хочу инициировать событие рисунка, как только значение ячейки переключается. Я попробовал ValueChaged и CellEndEdit и BeginEdit, и выбрал режим выбора в качестве CellSelect. Что касается первые 2 события, событие было инициировано после окончания режима редактирования, как перемещение из текущей ячейки или движение назад и вперед. Это - просто странное поведение.

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

30
задан mustafabar 15 November 2019 в 10:47
поделиться

2 ответа

Попробуйте подключиться к событию CellContentClick. DataGridViewCellEventArgs будет иметь ColumnIndex и RowIndex, чтобы вы могли узнать, действительно ли был нажат ChecboxCell. Преимущество этого события в том, что оно сработает только в том случае, если был установлен фактический флажок. Если вы нажмете на белую область ячейки вокруг флажка, он не сработает. Таким образом, вам практически гарантировано, что значение флажка было изменено при срабатывании этого события. Затем вы можете вызвать Invalidate (), чтобы инициировать событие рисования, а также вызов EndEdit (), чтобы инициировать конец редактирования строки, если вам это нужно.

4
ответ дан 27 November 2019 в 23:08
поделиться

В конце концов я реализовал это так

  private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
    {

        if (e.ColumnIndex >= 0 && e.RowIndex >= 0)
        {
            if (dataGridView1[e.ColumnIndex, e.RowIndex].GetContentBounds(e.RowIndex).Contains(e.Location))
            {
                cellEndEditTimer.Start();
            }
        }

    }

    private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    { /*place your code here*/}


    private void cellEndEditTimer_Tick(object sender, EventArgs e)
    {
        dataGridView1.EndEdit();
        cellEndEditTimer.Stop();
    }
4
ответ дан 27 November 2019 в 23:08
поделиться
Другие вопросы по тегам:

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