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

В конце концов, для меня это было то, что я создал таблицу в своей базе данных, но в ней не было данных.

Чтобы CakePHP мог распознавать соединение MySql, должна быть таблица с данными в нем.

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

5 ответов

Может быть не полезно для вас сейчас, но .Net 4 имеет класс SortedSet в BCL.

-121--3677837-

Просто используйте parseFloat () :

var c = parseFloat(a) + parseFloat(b);
-121--2875855-

Мой коллега рекомендует перехватить событие CurrentCellReadingStateChanged. См. http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.currentcelldirtystatechanged.aspx .

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

Попробуйте подключиться к событию 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
поделиться

У меня была такая же проблема, но придумала другое решение:

Если вы делаете столбец или всю сетку «только для чтения», чтобы, когда пользователь нажимает флажок, он не делает изменение значения.

К счастью, событие DataGridView.cellClick все еще уволено. В моем случае я делаю следующее в событии TellClick :

if (jM_jobTasksDataGridView.Columns[e.ColumnIndex].CellType.Name == "DataGridViewCheckBoxCell")

, но вы можете проверить имя столбца, если у вас есть более одного столбца флажка.

Я тогда делаю всю модификацию / сохранение набора данных.

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

cellEndEditTimer.Start ();

эта строка заставляет datagridview обновлять список отмеченных флажков

Спасибо.

0
ответ дан 27 November 2019 в 23:08
поделиться
Другие вопросы по тегам:

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