Скрыть / отключить строку изменения размера столбца / строки DataGridView - PullRequest
3 голосов
/ 08 мая 2020

Кто-нибудь знает способ отключить строку, которая появляется при изменении размеров строк и столбцов datagridview. Эта линия очень сильно мерцает, поэтому я лучше нарисую свою собственную линию solid и отключу стандартную.

enter image description here

Я надеялся, нарисовав свою собственную толстую линию (что я сделал), она будет рисовать поверх мерцающей по умолчанию линии, но к сожалению, затем появляются обе линии, мерцающая обычно появляется немного справа или слева от моей solid. Я не думаю, что это актуально, но код для рисования линии ниже.

Private Sub DataGridView1_Paint(sender As Object, e As PaintEventArgs) Handles DataGridView1.Paint

    If resizingColumns = True Then

        Dim penRed As Pen
        penRed = New Pen(color.Red, 3)

        Dim cursorPosition As Integer = Me.DataGridView1.PointToClient(New Point(Cursor.Position.X, Cursor.Position.Y)).X

        e.Graphics.DrawLine(penRed, cursorPosition, 0, cursorPosition, Me.DataGridView1.Size.Height)

    End If

End Sub

Единственная другая альтернатива, о которой я могу думать (чего я действительно не хочу делать), - это установить для AllowUserToResizeColumns значение false (что также скроет строку изменения размера столбца), а затем с помощью событий мыши программно изменить размер столбцов.

Любая помощь или направление приветствуются.

1 Ответ

1 голос
/ 26 мая 2020

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

Свойство InColumnResize, по общему признанию, является полной хакерской работой; возможно, лучше использовать logi c для установки resizingColumns.

...