【发布时间】:2009-08-31 05:21:28
【问题描述】:
当用户在我的列表框中选择某些项目时,我想禁用滚动(不是隐藏滚动条,而是完全禁止滚动) 如果用户移动到不同的项目(条件不重要),那么我想重新启用滚动 我如何在 .NET 2.0 中做到这一点
【问题讨论】:
-
切换 .Enabled 是否适合您的情况?
当用户在我的列表框中选择某些项目时,我想禁用滚动(不是隐藏滚动条,而是完全禁止滚动) 如果用户移动到不同的项目(条件不重要),那么我想重新启用滚动 我如何在 .NET 2.0 中做到这一点
【问题讨论】:
重写 ListBox 类的 CreateParams 属性。
public class My : ListBox
{
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.Style &= ~0x00200000; // VScroll
return cp;
}
}
}
添加以下代码进行测试,
private void Form1_Load(object sender, EventArgs e)
{
My c = new My();
for (int i = 1; i <= 100; i++){
c.Items.Add(i.ToString());
}
this.Controls.Add(c);
}
【讨论】: