DGV не обновляет значение - PullRequest
       5

DGV не обновляет значение

0 голосов
/ 27 декабря 2018

Я вставил DGV с именем MarksDGV1 в мое приложение, в то время как каждая ячейка внутри него имеет значение по умолчанию "0".Таким образом, после того, как пользователь изменяет значение некоторых из них, когда я пытаюсь достичь значения для последней отредактированной ячейки, он дает мне 0 вместо того, что набрал пользователь, даже если он отображается правильно ( Обратите внимание: невыбранные ячейки, которые не отображаются в синем цвете, показывают правильное значение) Как я могу это исправить?

Вот мой код:

MarksDGV1.Refresh();
MessageBox.Show(MarksDGV1.Rows[0].Cells[1].Value.ToString());

И вот как я построилDGV:

        using (DataGridViewTextBoxColumn tmp = new DataGridViewTextBoxColumn())
        {
            tmp.Width = 90;
            tmp.ReadOnly = true;
            tmp.HeaderText = "פרק מס.";
            MarksDGV1.Columns.Add(tmp);
        }
        for (int i = 1; i <= 30; i++)
        {
            using (DataGridViewTextBoxColumn tmp = new DataGridViewTextBoxColumn())
            {
                tmp.Width = 50;
                tmp.HeaderText = "שאלה מס." + i;
                MarksDGV1.Columns.Add(tmp);
            }
        }
        for (int i = 0; i < 8; i++)
        {
            using (DataGridViewRow tmp = (DataGridViewRow)MarksDGV1.Rows[i].Clone())
            {
                tmp.Cells[0].Value = i + 1;
                for (int j = 1; j <= 30; j++)
                {
                    tmp.Cells[j].Value = 0;
                    //tmp.Cells[j].Value = CurrentExam.Psy[i].Answers[j - 1];
                }
                MarksDGV1.Rows.Add(tmp);
            }
        }

Обновление: Я пытался набрать DataGridView.Refresh();, но не получилось!Обновление 2: я смог исправить это, выбрав другую ячейку, отличную от той, которая меня интересует, прежде чем я получу значения.Но это не решение для меня

1 Ответ

0 голосов
/ 27 декабря 2018

Из комментариев вы используете кнопку, которая не отвлекает фокус от сетки, поэтому она остается в режиме редактирования.Попробуйте это так:

MarksDGV1.EndEdit();
MessageBox.Show(MarksDGV1.Rows[0].Cells[1].Value.ToString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...