Сетка данных Просмотр сообщения Paint - Подсветка выделения строк - Неправильное рисование с помощью полосы прокрутки - PullRequest
0 голосов
/ 20 февраля 2019

Извиняюсь, если это простой вопрос, так как я все еще вхожу в C #.Я написал этот фрагмент кода, который выделяет целую строку, рисуя границу вокруг выделения.Однако при использовании полосы прокрутки строки не обновляются и перекрывают друг друга.

Я изучил функцию аннулирования, но не знал, как правильно применить ее для решения этой проблемы. на этом изображении показаны строки, описанные выше

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

Заранее благодарим за любую помощь

  private void dgv_SEATrucks_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
    {
        var dgv = (DataGridView)sender;
        // run this piece of code only for the selected row
        if (dgv.Rows[e.RowIndex].Selected)
        {
            int width = dgv_SEATrucks.Width;
            Rectangle r = dgv.GetRowDisplayRectangle(e.RowIndex, false);
            int a = r.Width - 1;
            int b = r.Height - 1;
            var rect = new Rectangle(r.X, r.Y, a, b);
            // draw the border around the selected row using the highlight color and using a border width of 2
            ControlPaint.DrawBorder(e.Graphics, rect,
                SystemColors.Highlight, 2, ButtonBorderStyle.Solid,
                SystemColors.Highlight, 2, ButtonBorderStyle.Solid,
                SystemColors.Highlight, 2, ButtonBorderStyle.Solid,
                SystemColors.Highlight, 2, ButtonBorderStyle.Solid);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...