Winform鼠標滑輪控制自定義滾動條


場景:類似QQ聊天的窗體中,需要添加自定義滾動條vScroll。主窗體中panel存放空間,右邊有垂直的滾動條vScroll。

問題:已經實現vScroll和Panel.VerticalScroll滾動條聯動,鼠標可拖動,但是鼠標滑輪事件不能觸發。

原因:Panel不能聚焦,鼠標點擊后不能觸發wheel事件。

解決方法:點擊Panel后vScroll獲得焦點,然后自定義鼠標Wheel事件。

代碼:

//鼠標滑輪事件
protected override void OnMouseWheel(MouseEventArgs e)
{
     base.OnMouseWheel(e);
     if(e.Delta < 0)
     {
          vScrollBar.Value += vScrollBar.LargeChange;          
     }    
     else
     {
          vScrollBar.Value -= vScrollBar.LargeChange;   
     }
     mPanel.VerticalScroll.value = vScrollbar.Value;
}

//點擊panel后vscroll獲得焦點
private void Panel_Click(object sender, EventArgs e)
{
     vScrollBar.focus();  
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM