删除或隐藏 gridview winform 中的垂直滚动条
Remove or hide the vertical scrollbar in gridview winfrom
我在 winfrom 上有一个用于 POS 客户端的应用程序。我的客户有一个触摸屏系统,所以我需要实现按钮以在 gridview 中滚动。
现在我面临的问题是无法隐藏滚动条。当我试图隐藏滚动条时,出现黑色分割图像
If TypeOf (sender) Is VScrollBar Then
Dim scrollBar As VScrollBar = CType(sender, VScrollBar)
If TypeOf (scrollBar.Parent) Is KryptonExtendedGrid Then
Dim KryptonGrid As KryptonExtendedGrid = CType(scrollBar.Parent, KryptonExtendedGrid)
If KryptonGrid.ScrollControl IsNot Nothing Then
If scrollBar.Visible Then
grdForecast.ScrollBars = ScrollBars.None
scrollBar.Visible = False
scrollBar.Hide()
KryptonGrid.ScrollControl.DownButton.Enabled = True
Else
KryptonGrid.ScrollControl.DownButton.Enabled = False
End If
End If
End If
End If
vb.net, 测试, panel2 在panel1 里面, panel2 的宽度比panel1 大一点, 足以隐藏滚动条:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Panel1.HorizontalScroll.Visible = False
Panel1.VerticalScroll.Visible = False
Panel2.AutoScroll = True
Panel2.HorizontalScroll.Visible = False
Panel2.VerticalScroll.Visible = True
End Sub
Private Sub Panel2_MouseWheel(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Panel2.MouseWheel
If Panel2.Bounds.Contains(e.Location) Then
Dim vScrollPosition As Integer = Panel2.VerticalScroll.Value
vScrollPosition = e.Location.Y
Panel2.Invalidate()
End If
End Sub
Private Sub Panel2_MouseEnter(sender As Object, e As EventArgs) Handles Panel2.MouseEnter
Panel2.Select()
End Sub
End Class
这适用于 2 个面板,它肯定适用于另一个面板中的任何内容,例如数据网格视图,您所要做的就是使宽度足够大以隐藏栏
这是一个简单的方法,因为如果你想真正隐藏它们,你将需要覆盖原来的控件
感谢大家的支持。我已经自己修好了。我正在分享代码以防有人需要帮助
Private Sub VScrollBar1_VisibleChanged(ByVal sender As Object, ByVal e As EventArgs)
Try
If TypeOf (sender) Is VScrollBar Then
Dim scrollBar As VScrollBar = CType(sender, VScrollBar)
If TypeOf (scrollBar.Parent) Is KryptonExtendedGrid Then
Dim KryptonGrid As KryptonExtendedGrid = CType(scrollBar.Parent, KryptonExtendedGrid)
If KryptonGrid.ScrollControl IsNot Nothing Then
If KryptonGrid.ScrollBars = ScrollBars.Vertical Then
KryptonGrid.ScrollBars = ScrollBars.None
KryptonGrid.ScrollControl.DownButton.Enabled = True
Else
KryptonGrid.ScrollControl.DownButton.Enabled = False
End If
End If
End If
End If
Catch ex As Exception
End Try
End Sub
我在 winfrom 上有一个用于 POS 客户端的应用程序。我的客户有一个触摸屏系统,所以我需要实现按钮以在 gridview 中滚动。
现在我面临的问题是无法隐藏滚动条。当我试图隐藏滚动条时,出现黑色分割图像
If TypeOf (sender) Is VScrollBar Then
Dim scrollBar As VScrollBar = CType(sender, VScrollBar)
If TypeOf (scrollBar.Parent) Is KryptonExtendedGrid Then
Dim KryptonGrid As KryptonExtendedGrid = CType(scrollBar.Parent, KryptonExtendedGrid)
If KryptonGrid.ScrollControl IsNot Nothing Then
If scrollBar.Visible Then
grdForecast.ScrollBars = ScrollBars.None
scrollBar.Visible = False
scrollBar.Hide()
KryptonGrid.ScrollControl.DownButton.Enabled = True
Else
KryptonGrid.ScrollControl.DownButton.Enabled = False
End If
End If
End If
End If
vb.net, 测试, panel2 在panel1 里面, panel2 的宽度比panel1 大一点, 足以隐藏滚动条:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Panel1.HorizontalScroll.Visible = False
Panel1.VerticalScroll.Visible = False
Panel2.AutoScroll = True
Panel2.HorizontalScroll.Visible = False
Panel2.VerticalScroll.Visible = True
End Sub
Private Sub Panel2_MouseWheel(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Panel2.MouseWheel
If Panel2.Bounds.Contains(e.Location) Then
Dim vScrollPosition As Integer = Panel2.VerticalScroll.Value
vScrollPosition = e.Location.Y
Panel2.Invalidate()
End If
End Sub
Private Sub Panel2_MouseEnter(sender As Object, e As EventArgs) Handles Panel2.MouseEnter
Panel2.Select()
End Sub
End Class
这适用于 2 个面板,它肯定适用于另一个面板中的任何内容,例如数据网格视图,您所要做的就是使宽度足够大以隐藏栏
这是一个简单的方法,因为如果你想真正隐藏它们,你将需要覆盖原来的控件
感谢大家的支持。我已经自己修好了。我正在分享代码以防有人需要帮助
Private Sub VScrollBar1_VisibleChanged(ByVal sender As Object, ByVal e As EventArgs)
Try
If TypeOf (sender) Is VScrollBar Then
Dim scrollBar As VScrollBar = CType(sender, VScrollBar)
If TypeOf (scrollBar.Parent) Is KryptonExtendedGrid Then
Dim KryptonGrid As KryptonExtendedGrid = CType(scrollBar.Parent, KryptonExtendedGrid)
If KryptonGrid.ScrollControl IsNot Nothing Then
If KryptonGrid.ScrollBars = ScrollBars.Vertical Then
KryptonGrid.ScrollBars = ScrollBars.None
KryptonGrid.ScrollControl.DownButton.Enabled = True
Else
KryptonGrid.ScrollControl.DownButton.Enabled = False
End If
End If
End If
End If
Catch ex As Exception
End Try
End Sub