在c#中启用禁用列表视图的滚动条
本文关键字:列表 视图 滚动条 启用 | 更新日期: 2023-09-27 18:16:49
我有点糊涂了。I'm set:
this.listView1.Enabled = false;
当我做listview的滚动条也被禁用。我想看到所有的listviewitems在listview滚动条禁用时。请给我一些建议。谢谢。
在很多评论之后,我假设你的listview,因为经常从许多不同的线程更新,是闪烁的。
如果是这样,一个可能的解决方案是启用DoubleBuffering;这个属性是protected
,所以只能从子类访问。
所以你可以:
- 添加一个新类到您的项目,并粘贴如下所示的代码
- 将新控件从工具箱顶部拖放到窗体上,替换旧控件
这可以解决你的问题。
using System;
using System.Windows.Forms;
class BufferedListView : ListView
{
public BufferedListView()
{
this.DoubleBuffered = true;
}
}
这个想法来自于SO.
你不能滚动一个禁用的控件,因为滚动条是控件本身的一部分(它是禁用的,所以…)。
如果你想滚动,但不允许用户选择任何东西,你可以这样做
this.listBox1.SelectionMode = SelectionMode.None;
如果你想恢复它,你可以将它设置为SelectionMode。一个用于单个选择,或用于多个选择的其他选项之一。
另一个选项是让用户绘制ListBox
你不能滚动一个被禁用的控件-但是如果你真的需要这样的功能,开发一个用户控件。
在c#中开发自定义控件
隐藏CheckListbox中的滚动条
一步步编写自定义控件
也许如果你把listview放在Panel中,你可以通过在Panel控件上设置ScrollBars="Auto"
来启用滚动