The use of shift + scroll wheel is fairly common for horizontal scrolling.
Both of those are fairly easy to capture. I can use the MouseWheel event with a flag set
If you are creating your own control derived from UserControl or ScrollControl or Form, you can use this simple solution:
protected override void OnMouseWheel(MouseEventArgs e)
{
if (this.VScroll && (Control.ModifierKeys & Keys.Shift) == Keys.Shift)
{
this.VScroll = false;
base.OnMouseWheel(e);
this.VScroll = true;
}
else
{
base.OnMouseWheel(e);
}
}
If a control has AutoScroll and is displaying scrollbars, when you scroll the mouse wheel you will get the following behaviour:
Noticing this behaviour, I figured out this hack to override OnMouseWheel of the control, then if the vertical scrollbar is enabled and Shift is held down, it disables the vertical scrollbar before calling base.OnMouseWheel. This will trick the control in scrolling the horizontal scrollbar (behaviour 3 as shown above).