Zum Inhalt springen

C# ScrollAbleControl, MouseWheel-Events


Mephisto81

Empfohlene Beiträge

Hallo,

ich muss mich zur Zeit mit C# befassen und komme bei einer Sache nicht weiter. Vielleicht habt ihr ja eine idee:

Ich habe mir ein eigenes Control erstellt welches sich von ScrollAbleControl vererbt. Zusätzlich habe ich mir noch ein Control erstellt welches mehrere Male in dem ScrollAbleControl dargestellt werden soll (dies vererbt sich von Panel). Ich möchte dem User die Möglichkeit bieten in dem ScrollAbleControl mittels Mausrad hoch und runter zu scrollen. Dies sollte ja eigentlich schon standardmäßig funktionieren (wegen ScrollAbleControl) aber tat es leider nicht :) . Zu Testzwecken habe ich mir also einen EventHandler für die MouseWheel-Behandlung in mein ScrollAbleControl gepackt und ein wenig rumgedebugged (super deutsch aber ihr wisst ja was ich meine ;) ). Dieser funktioniert auch einwandfrei, allerdings nur bis ich Items in mein ScrollAbleControl eingefügt habe- dann klappt es nicht mehr. Ich dachte mir also das die MouseWheel-Events womöglich von den Items abgefangen werden (weil die Maus ja auch darauf zeigt in diesem Moment). Allerdings musste ich feststellen das der Event auf einmal nur im Form gefangen wurde und weder mein ScrollAbleControl noch meine Items den MouseWheel-Event mitbekommen.

Nun zu meiner/meinen Frage/n: Es kann ja im Prinzip nicht sein das ich jetzt im EventHandler von der Hauptform anhand der Mausposition herausfinden muss ob ich über meinem ScrollAbleControl bin und dann den Event weiterleiten muss?! Gibt es einen Weg den Controls zu sagen das sie den MouseWheel-Event annehmen und an die (bereits standardmäßig vorhandene) Funktionalität des ScrollAbleControls weiterleiten? Hat jemand von euch schonmal dasselbe Problem gehabt und es gelöst?

Gruß

mep

PS:

Habe schon probiert die WndProc meines ScrollAbleControls zu überschreiben und die WM_MOUSEWHEEL-Message von Windows abgefangen aber auch da kommt der Event nicht mehr an, wenn Items ins Control eingefügt wurden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo,

habe es schon selber hinbekommen und will meine Lösung der Allgemeinheit natürlich nicht vorenthalten:

Ein Panel kann anscheinend unter C# (bzw. .NET Framework 1.0) generell keine MouseWheel-Events empfangen (obwohl es erlaubt ist einen EventHandler dafür zuzuweisen). Kaum hatte ich meine Klasse (die von Panel abgeleitet war) von UserControl abgeleitet klappte alles :rolleyes: ... ein fader Beigeschmack bleibt... vielleicht wird sich da ja auch was ändern im .NET Framework 2.0 ;)

gruß

mep

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...