gpt4 book ai didi

vb.net - 隐藏/禁用 DataGridView 列/行调整行大小

转载 作者:行者123 更新时间:2023-12-03 17:00:25 26 4
gpt4 key购买 nike

有没有人知道在调整 datagridview 行和列大小时禁用出现的行的方法。这条线经常闪烁,所以我宁愿自己画一条实线并禁用默认的实线。

enter image description here

我希望通过绘制自己的粗线(我已经完成),它会绘制在默认闪烁的顶部,但不幸的是,两条线都出现了,闪烁的线通常出现在我的实线的右侧或左侧.我不认为它是相关的,但是用于绘制下面的线的代码。

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(这也会隐藏列大小调整线),然后使用鼠标事件以编程方式调整列大小。

任何帮助或指导将不胜感激。

最佳答案

我注意到,如果您创建派生的 DataGridView 并启用其 DoubleBuffered 属性,则不会出现调整大小指示线。使用该信息,我创建了以下概念验证控件,可用于代替基本 DataGridView 控件。

Public Class MyDGV : Inherits DataGridView
Private resizePen As New Pen(Color.Red, 3)

Public Sub New()
MyBase.New
DoubleBuffered = True
End Sub

Protected Overrides Sub Dispose(disposing As Boolean)
MyBase.Dispose(disposing)
If resizePen IsNot Nothing Then
resizePen.Dispose()
resizePen = Nothing
End If
End Sub

Private ReadOnly Property InColumnResize As Boolean
Get
Return (MouseButtons = MouseButtons.Left) AndAlso (Cursor = Cursors.SizeWE)
End Get
End Property

Protected Overrides Sub OnMouseMove(e As MouseEventArgs)
MyBase.OnMouseMove(e)
If InColumnResize Then Invalidate()
End Sub

Protected Overrides Sub OnPaint(e As PaintEventArgs)
MyBase.OnPaint(e)
If InColumnResize Then
Dim cursorPosition As Integer = Me.PointToClient(New Point(Cursor.Position.X, Cursor.Position.Y)).X
e.Graphics.DrawLine(resizePen, cursorPosition, 0, cursorPosition, Me.Size.Height)
End If
End Sub

End Class

我需要 Invalidate在调整大小以删除先前绘制的线期间的控件。也许只是使前一行更好的区域无效。

属性(property) InColumnResize无可否认,这是一项完整的黑客工作;也许你用来设置的逻辑 resizingColumns更好。

关于vb.net - 隐藏/禁用 DataGridView 列/行调整行大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61672546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com