2009-08-31 9 views
1

Je veux désactiver le défilement (ne pas masquer la barre de défilement tout en interdisant complètement le défilement) lorsque l'utilisateur sélectionne certains éléments dans ma liste si l'utilisateur passe à un élément différent (les critères ne sont pas importants) alors je veux réactiver le défilement Comment faire cela dans .NET 2.0listbox scrolling

+0

Est-ce que le travail .Enabled pour basculer votre situation? – hometoast

Répondre

0

Substitue la propriété CreateParams de la classe ListBox.

public class My : ListBox 
{ 
    protected override CreateParams CreateParams 
    { 
     get 
     { 
      CreateParams cp = base.CreateParams; 
      cp.Style &= ~0x00200000; // VScroll 
      return cp; 
     } 
    } 
} 

Ajouter un code suivant pour tester,

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

cela fonctionne sur XP mais pas sur Vista aucune idée pourquoi – Rahul