c# - 删除或隐藏gridview winfrom中的垂直滚动条
问题描述
我有一个用于 POS 客户端的 winfrom 应用程序。我的客户有一个触摸屏系统,所以我需要实现按钮以在 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,经过测试,panel1 内的 panel2,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 个面板,它肯定会适用于另一个面板中的任何东西,比如 datagridview 你所要做的就是使宽度足够大以隐藏栏
这是一种简单的方法,因为如果您想真正隐藏它们,您将需要覆盖原始控件
推荐阅读
- swift - CGBlendMode 产生错误的结果
- curl - 捕获 curl 退出代码和 htpp 状态代码
- uwsgi - uwsgi.ini 将变量设置为命令输出
- tensorflow - ('输入具有未定义的等级:',TensorShape(None)) <- 构建 ResNet 时出错
- c++ - 从父目录导入 proto 不起作用
- r - R中的时间序列模型样本ACF
- c - 我如何使用 GTK 3 中的模型过滤器和 C 中的 GTK_SELECTION_MULTIPLE 在树视图中进行 DND?
- reactjs - 我可以禁用底部标签导航器中的选项卡之一吗?反应原生
- reactjs - 在 React JS 中尝试上下文 API 时出错。我在 ReactJS 中使用上下文 API 和类
- java - 单击 ::before 的 psedu 元素并在其中发送密钥