C# - Egér görgöjének kezelése programból

forráskód letöltése
Ha szeretnénk egy Form-on kihasználni saját alkalmazásunkban az egér görgőjét, akkor nyilván ezt kezelnünk kell. Szükségünk van tehát egy olyan eseményre, amely létrejön akkor, amikor a felhasználó tekeri a görgőt. Ekkor meg kell határoznunk a tekerés irányát és mértékét.
Ha megnézzük a Properties ablakban az eseményeket, mikor egy Form van kiválasztva, akkor számos eseményt találunk, mely az egérrel kapcsolatos. Nem látunk viszont olyan, mely az egér görgőjével lenne összefüggésben.
Ennek ellenére létezik egy MouseWheel esemény, melyet programból felhasználhatunk és amely akkor jön létre, ha az egér görgőjével történt esemény.
      this.MouseWheel += new MouseEventHandler(MouseEventHandler);
A saját eseménykezelő létrehozása után csak kezelnünk kell annak létrejöttét.
Az esemény paramétereként kapunk egy Delta property-t, mely tárolja, hogy mennyi a görgő elmozdulásának mértéke. Ez lehet negatív, vagy pozitív szám annak függvényében, hogy milyen irányban történt a görgő elmozdulása. Ha a programunkban csak az irányra van szükségünk, akkor osszuk el a kapott értéket önmagával úgy, hogy az egyik számnak az abszolút értékét vesszük figyelembe. Ennek eredménye vagy 1, vagy -1 lesz. Így ezt az értéket már könnyedén felhasználhatjuk tetszőleges módon: például léptethetünk egy ProgressBar-t vele.
    public void MouseEventHandler(object sender, MouseEventArgs e)
    {
      label1.Text = e.Delta.ToString();
      try
      {
        progressBar1.Value += e.Delta/Math.Abs(e.Delta);      
      }
      catch
      {
      }
    }