【问题标题】:listbox scrolling列表框滚动
【发布时间】:2009-08-31 05:21:28
【问题描述】:

当用户在我的列表框中选择某些项目时,我想禁用滚动(不是隐藏滚动条,而是完全禁止滚动) 如果用户移动到不同的项目(条件不重要),那么我想重新启用滚动 我如何在 .NET 2.0 中做到这一点

【问题讨论】:

  • 切换 .Enabled 是否适合您的情况?

标签: winforms listbox


【解决方案1】:

重写 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);
        }

【讨论】:

  • 这适用于 XP 但不适用于 Vista 不知道为什么
猜你喜欢
  • 1970-01-01
  • 2020-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-03
  • 2021-07-14
相关资源
最近更新 更多