2009-08-31 5 views
1

Я хочу отключить прокрутку (не скрывать полосу прокрутки, но пропустить прокрутку вообще), когда пользователь выбирает определенные элементы в моем списке , если пользователь переходит к элементу differnet (критерии не важны), тогда я хочу повторно включить прокрутку Как это сделать в .NET 2.0listbox scrolling

+0

бы переключая .Enabled работу для вашей ситуации? – hometoast

ответ

0

Переопределить свойство CreateParams класса ListBox.

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); 
     } 
+0

это беспокоит XP, но не на Vista любая идея, почему – Rahul