Mausrad in mehrere Comboboxen einer Groupbox oder eines Panels deaktivieren

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Volkmar.

    Mausrad in mehrere Comboboxen einer Groupbox oder eines Panels deaktivieren

    Hallo,

    vermutlich bin ich mal wieder zu blöd, aber ich bekomme es nicht hin.

    Ich weiß, dass ich für eine einzelne Combobox das Scrolling mit dem Mausrad so deaktivieren kann:

    VB.NET-Quellcode

    1. Private Sub ComboBox1_MouseWheel(sender As Object, e As MouseEventArgs) Handles ComboBox1.MouseWheel
    2. Dim HMEA As HandledMouseEventArgs = DirectCast(e, HandledMouseEventArgs)
    3. HMEA.Handled = True
    4. End Sub


    Ich bekomme es aber nicht hin, das für mehrere Comboboxen, die sich in einer Groupbox befinden, umzusetzen. Versucht habe ich es mit:

    VB.NET-Quellcode

    1. For Each cmb As ComboBox In GroupBox1.Controls.OfType(Of ComboBox)()
    2. Dim HMEA As HandledMouseEventArgs = DirectCast(e, HandledMouseEventArgs)
    3. HMEA.Handled = True
    4. Next


    Aber da knallt mir der Compiler um die Ohren, dass e nicht definiert ist.

    Vielleicht kann mich ja jemand auf die richtige Fährte setzen.

    Danke und Gruß,
    Volkmar
    @Volkmar Das musst Du für jedes Control einzeln machen, geht aber ganz easy:

    VB.NET-Quellcode

    1. Private Sub ComboBox1_MouseWheel(sender As Object, e As MouseEventArgs) Handles ComboBox1.MouseWheel, ComboBox2.MouseWheel, ComboBox3.MouseWheel, ComboBox4.MouseWheel
    2. Dim HMEA As HandledMouseEventArgs = DirectCast(e, HandledMouseEventArgs)
    3. HMEA.Handled = True
    4. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. For Each Control In GroupBox1.Controls.OfType(Of ComboBox)
    3. AddHandler Control.MouseWheel, AddressOf Ignore_MouseWheel
    4. Next
    5. End Sub
    6. Private Sub Ignore_MouseWheel(sender As Object, e As MouseEventArgs)
    7. DirectCast(e, HandledMouseEventArgs).Handled = True
    8. End Sub
    besser?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed

    Entschuldige, dass ich Dir erst heute antworte, genauer gesagt, mich bei Dir bedanke.

    Ich hatte zwar gesehen, dass ich da was mit dem Addhandler und dem Event machen muss, habe es aber nicht hinbekommen. Bei der Addhandler-Behandlung habe ich noch Defizite, da muss ich dran arbeiten, das weiß ich.

    Jedenfalls vielen Danke für Deine Hilfe, funktioniert perfekt. :) :thumbsup:

    Gruß, Volkmar