【问题标题】:Disable the Horizontal ScrollBar from ListView in Winforms从 Winforms 中的 ListView 禁用水平滚动条
【发布时间】:2014-06-16 17:45:19
【问题描述】:

在我的应用程序中,我出于多种目的使用了很多 ListView。我想禁用水平滚动条。我使用以下链接作为参考有效地完成了这一点 Disable Horizontal ScrollBar 1Disable Horizontal ScrollBar 2。以下是我的代码:

首先我将 ListView 的 Scrollable 属性设置为 false

[DllImport("user32.dll")]
static public extern bool ShowScrollBar(System.IntPtr hWnd, int wBar, bool bShow);
private const uint SB_HORZ = 0; //Horrizontal Scroll
private const uint SB_VERT = 1; //Vertical Scroll
private const uint ESB_DISABLE_BOTH = 0x3;
private const uint ESB_ENABLE_BOTH = 0x0;

创建了一个方法,以便通过应用程序将其用于所有 ListView

public  void HideHorizontalScrollBar(ListView lv,int value, bool isNeeded)
{
    ShowScrollBar(lv.Handle, value, isNeeded);
}

现在在 MainForm 的构造函数中在 InitializeComponent() 之后引用了这个方法

 private void ListViewHorrizontalScrollBar()
{
    //0 for horrizontal
    //1 for vertical

    _ListViewScrollOperation.HideHorizontalScrollBar(this.lvAntSetExcludedFiles, 0, false);
    _ListViewScrollOperation.HideHorizontalScrollBar(this.lvAntSetExcludedFiles, 1, true);
}

现在这个东西对我来说非常有用。但是我只是有一个小问题。即使只有 2 个值,垂直滚动条仍然可见。即使 ListView 中没有任何数据,Vertical ScrollBar 仍然是可见的。

此外,由于 ListView 的 Scrollable 属性设置为 false,因此我无法使用键盘的向上和向下箭头键从 Top-Bottom 或 Bottom-Top 导航。 那么我还能做些什么来解决这个问题吗?

任何帮助将不胜感激。

提前致谢

【问题讨论】:

  • 看起来像XY problem。您是否尝试禁用水平滚动条,因为您将列标题设置得太长?
  • @Sinatr 我尝试多次更改列标题但仍然面临问题所以只有我在这里发布。
  • 尝试使用auto-size列宽。

标签: c# winforms listview scrollable


【解决方案1】:

经过大量谷歌搜索和Sinatr 的一点提示后,我终于想出了解决方案。当然,正如评论所说,我在XY Problem。所以这就是我所做的。

  • 我首先将 ListView 的 Scrollable 属性更改为 true。
  • 删除了我在上面的问题中提到的代码块。

这是我在 ListView 之后添加的额外代码行

lv.Items.Clear();
foreach (string newval in stringlist)
    lv.Items.Add(newval);
lv.Columns[0].AutoResize(ColumnHeaderAutoResizeStyle.None);
lv.Columns[0].Width = 'Your own size';
lv.Columns[0].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);

我做到了以下几点

  • 禁用水平滚动条
  • 使用上下箭头导航
  • 垂直 ScrollBar 不会意外出现。

【讨论】:

    猜你喜欢
    • 2010-11-05
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多