我感到困惑。我订了:
this.listView1.Enabled = false;
当我这样做时,listview的滚动条也被禁用了。我想在列表视图禁用时使用滚动条在列表视图中查看所有listviewitems。请给我一些建议。谢谢。
答案 0 :(得分:2)
您无法滚动已禁用的控件,因为滚动条是控件本身的一部分(并且已禁用,因此......)。
如果你想滚动但不允许用户选择任何东西,你可以这样做
this.listBox1.SelectionMode = SelectionMode.None;
如果你想还原它,你可以将它设置为SelectionMode.One用于单个,或者用于多个选择余量的其他选项之一。
另一个(imho overcomplicated)选项正在使用户绘制ListBox。
答案 1 :(得分:2)
经过大量评论后,我假设您的列表视图,因为经常从许多不同的线程更新,闪烁。
如果是这样,一种可能的解决方案是启用DoubleBuffering;无论如何,这个属性protected
只能从后代类中访问
所以你可以:
这可以解决您的问题。
using System;
using System.Windows.Forms;
class BufferedListView : ListView
{
public BufferedListView()
{
this.DoubleBuffered = true;
}
}
这个想法取自this post SO。
答案 2 :(得分:1)
您无法滚动已禁用的控件 - 但如果您确实需要此类功能,请开发用户控件。
Developing Custom Controls in C#
答案 3 :(得分:0)
也许如果您将listview放在Panel中,可以通过在Panel控件上设置ScrollBars="Auto"
来启用滚动