How can I scroll my panel using my mousewheel?

Viewed 70070

I have a panel on my form with AutoScroll set to true so a scrollbar appears automatically.

How can I make it so a user can use his mouse wheel to scroll the panel? Thanks SO.

9 Answers

Below code works for me.....

    Public Form
{
InitializeComponent();  
this.MouseWheel += new MouseEventHandler(Panel1_MouseWheel);
}

 private void Panel1_MouseWheel(object sender, MouseEventArgs e)
        {
         panel1.Focus();
         }

In my case, the whole client area of the panel was occupied by UserControls (not a single pixel of the inner area visible, except the scrollbars).

In this case the panel doesn't get the mouse-events and will never focus (apperently, clicking on the scrollbar does not count as "being inside the panel").

I had to add the following lines to the constructor of my UserControl derived class:

MouseEnter += delegate {
   Parent?.Focus();
};

Now it works fine, as I have no scrollable content in the UserControls.

Related