删除或隐藏 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