Datagridview: Как установить ячейку в режиме редактирования?

Так как у Вас есть динамические значения, необходимо использовать ЕСЛИ или СЛУЧАЙ для столбцов, которые будут обновлены. Это становится довольно ужасным, но это должно работать.

Используя Ваш пример, Вы могли сделать это как:

UPDATE table SET Col1 = CASE id 
                          WHEN 1 THEN 1 
                          WHEN 2 THEN 2 
                          WHEN 4 THEN 10 
                          ELSE Col1 
                        END, 
                 Col2 = CASE id 
                          WHEN 3 THEN 3 
                          WHEN 4 THEN 12 
                          ELSE Col2 
                        END
             WHERE id IN (1, 2, 3, 4);
28
задан Peter Mortensen 1 January 2013 в 01:38
поделиться

2 ответа

Установка CurrentCell с последующим вызовом BeginEdit (true) мне подходит.

В следующем коде показан обработчик событий для ] KeyDown , которое устанавливает редактируемую ячейку.

Мой пример реализует только одно из требуемых переопределений нажатия клавиш, но теоретически остальные должны работать так же. (и я всегда настраиваю ячейку [0] [0] как доступную для редактирования, но любая другая ячейка должна работать)

    private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Tab && dataGridView1.CurrentCell.ColumnIndex == 1)
        {
            e.Handled = true;
            DataGridViewCell cell = dataGridView1.Rows[0].Cells[0];
            dataGridView1.CurrentCell = cell;
            dataGridView1.BeginEdit(true);               
        }
    }

Если вы не нашли его ранее, FAQ по DataGridView - отличный ресурс , написанный менеджером программ для элемента управления DataGridView, который охватывает большую часть того, что вы можете делать с этим элементом управления.

67
ответ дан 28 November 2019 в 02:38
поделиться

Хорошо, я бы проверил, любой из ваших столбцов установлен как Только для чтения . Мне никогда не приходилось использовать BeginEdit, но, возможно, есть какое-то законное использование. После того как вы выполнили dataGridView1.Columns [".."]. ReadOnly = False; , поля, которые не являются ReadOnly , должны стать редактируемыми. Вы можете использовать событие DataGridView CellEnter , чтобы определить, какая ячейка была введена , а затем включить редактирование этих ячеек после того, как вы передали редактирование из первых двух столбцов в следующий набор столбцов и отключите редактирование двух последних столбцов.

3
ответ дан 28 November 2019 в 02:38
поделиться
Другие вопросы по тегам:

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