【问题标题】:Override just the vertical scroll bar portion of a ComboBox?仅覆盖 ComboBox 的垂直滚动条部分?
【发布时间】:2012-09-29 02:38:03
【问题描述】:

有没有办法在 C# 中获取 ComboBox 的垂直滚动条部分?我正在编写一个将在触摸屏上运行的应用程序,并且我想加宽 ComboBox 的垂直滚动条部分。有没有办法获得 ComboBox 的那个组件,或者我只是不走运?我正在使用 WinForms。

【问题讨论】:

  • 你在用什么?表格? WPF?
  • 如果它的winforms,你需要所有者绘制组合框。
  • 应该更清楚。这是 WinForms。
  • 你愿意写一个自定义的窗体控件吗?这将需要更多的工作,但从长远来看可能是有益的。我不知道组合框有任何属性允许您更改滚动条宽度,因此无论哪种方式都可能需要一些操作
  • 我当然很想学习如何编写自己的自定义控件,但我对 C# 比较陌生,我不知道从哪里开始编写如此复杂的控件。我希望有一些更简单的方法来加宽 .net 控件中的滚动条。

标签: c# winforms c#-4.0 scrollbar


【解决方案1】:

您不能只更改一个控件的滚动条宽度。宽度是系统设置,Winforms中SystemInformation.VerticalScrollBarWidth属性。

解决方法是认识到这不仅仅是组合框的问题,任何滚动条都很难在触摸屏上使用。所以改变系统设置。在 Windows 7 上,使用控制面板 + 显示、个性化、窗口颜色、高级外观设置。 Item = 滚动条,增加大小。您还需要增加 Caption Buttons 的大小,以便更容易点击关闭按钮。等等。

请注意,关于 Basic 主题的评论是无稽之谈。

【讨论】:

  • 在我的特殊情况下不能这样做(没有访问权限),但这会起作用。谢谢。
【解决方案2】:

由于@Hans Passant 提供的答案仅适用于 Windows 7,并且在 Windows 10 中不再可用,因此您实际上可以使用我在以下链接中的 GitHub 上发布的工具:

https://github.com/codewondo/Windows-Scrollbar-Width-Changer

此工具通过修改注册表来改变滚动条。

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 2017-12-13
    • 1970-01-01
    • 2020-12-01
    • 2011-07-31
    • 1970-01-01
    相关资源
    最近更新 更多