簡體   English   中英

WinForms ScrollableControl的滾動條捕獲鼠標滾輪?

[英]WinForms ScrollableControl's scrollbars capture mouse wheel?

我有一個基於ScrollableControl的自定義ZoomBox控件,該控件通過AutoscrollMinSize屬性控制其滾動條。 我希望能夠處理WM_MOUSEWHEEL事件以調整控件的Zoom。 我通過在父窗體上進行過濾來采取必要步驟,以確保控件即使在焦點不在時也能接收到鼠標事件。

看起來,如果控件沒有激活其滾動條,則事件僅到達OnMouseWheel方法。 如果確實如此,則似乎是將鼠標滾輪事件重定向到處理它們的滾動條(通過滾動)。

我希望滾動條在那里,但只能以“傳統方式”進行控制,即拖動滑塊或單擊箭頭等,然后自己操縱滾輪。 有可能實現這一目標嗎?

從有問題的ScrollableControl繼承並重寫OnMouseWheel() 在這種方法中,不要調用base.OnMouseWheel()

據我所知,如果存在滾動條,則沒有其他方法可以阻止ScrollableControl滾動。

副作用是您將不再獲得MouseWheel事件。 解決這是另一個問題。 從概念上講,您想調用base.base.OnMouseWheel()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM