Announcement

Collapse
No announcement yet.

Scrollen verhindern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Scrollen verhindern

    Hallo,

    ich habe ein Panel mit einer Picturebox darunter. Wenn die Picturebox größer wird, werden die Scrollbalken im Panel angezeigt. Soweit so gut. Nun habe ich programmiert, wenn man das Rädchen dreht, wird an den markierten Bereich rangezoomt und zentriert. Das funktioniert auch. NUR: Wenn er ranzoomt, wird dann automatisch auch der Scrollbalken noch zusätzlich bewegt. Wie kann ich das unterdrücken? Hab da nix zu gefunden.

    Gruß
    Thomas

    ps: Scrollen der Balken ist ja erwünscht, nur nicht per Mausrad...

  • #2
    Eigentlich sollte es reichen im MouseWheel Event des Panel zu sagen das man den Event schon behandelt hat (Handled auf true setzen). Dummerweise (habe ich mir gerade in ScrollableControl dem Vorfahr von Panel angesehen) wird erst gescrollt und dann der Event gefeuert. Jedes eingreifen ist also zu spät.

    Da hilft wohl nur das Panel abzuleiten, in der Ableitung dann OnMouseWheel zu überschreiben und die überschrieben Methode dann leer zu lassen.

    Comment


    • #3
      Ein handled hab ich nicht gefunden. (VB.net 2010)

      Das andere, was Du meinst: Eigenes Control erstellen, vererben und dann die OnMouseWheel überschreiben und leer lassen, richtig verstanden?

      Ich werds mal versuchen. Und Danke für den Tip

      Comment


      • #4
        Ein handled hab ich nicht gefunden. (VB.net 2010)
        Alle MouseEvents sind vom MouseEventHandler Typ der als EventArgs Parameter eine MouseEventArgs Instanz liefert. Warum die vereinheitlicht sind weiß ich nicht. Aber beim MouseWheel Event kommt in Wirklichkeit eine HandledMouseEventArgs Instanz zurück. Du müsstest also im MouseWheel Event erst die MouseEventArgs auf HandledMouseEventArgs casten um die Handled Property zu sehen.

        Comment


        • #5
          Ah ok... ^^ Warum nur so kompliziert... Ich teste mal...

          Comment


          • #6
            Auf diese Weise funktioniert es schon mal nicht... Teste jetzt mal Variante eigenes Control...

            Comment


            • #7
              Variante eigenes Control funktioniert tadellos. Da könnte man auf die Idee kommen, alles mit eigenen Controls machen zu wollen.

              Danke Dir nochmals.

              Comment

              Working...
              X