Author: mkestner
Date: 2006-06-28 13:28:54 -0400 (Wed, 28 Jun 2006)
New Revision: 62122
Modified:
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ComboBox.cs
Log:
2006-06-28 Mike Kestner <[EMAIL PROTECTED]>
* ComboBox.cs: implement scroll wheel support. Fixes #78360.
Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
2006-06-28 17:23:07 UTC (rev 62121)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
2006-06-28 17:28:54 UTC (rev 62122)
@@ -1,3 +1,7 @@
+2006-06-28 Mike Kestner <[EMAIL PROTECTED]>
+
+ * ComboBox.cs: implement scroll wheel support. Fixes #78360.
+
2006-06-28 Atsushi Enomoto <[EMAIL PROTECTED]>
* PropertyGrid.cs,
Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ComboBox.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ComboBox.cs
2006-06-28 17:23:07 UTC (rev 62121)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ComboBox.cs
2006-06-28 17:28:54 UTC (rev 62122)
@@ -1427,6 +1427,7 @@
MouseDown += new MouseEventHandler
(OnMouseDownPUW);
MouseUp += new MouseEventHandler (OnMouseUpPUW);
MouseMove += new MouseEventHandler
(OnMouseMovePUW);
+ MouseWheel += new MouseEventHandler
(OnMouseWheelCLB);
KeyDown += new KeyEventHandler (OnKeyDownPUW);
SetStyle (ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint, true);
SetStyle (ControlStyles.ResizeRedraw |
ControlStyles.Opaque, true);
@@ -1839,6 +1840,30 @@
last_item = LastVisibleItem ();
}
+ private void Scroll (int delta)
+ {
+ if (delta == 0 || !vscrollbar_ctrl.Visible)
+ return;
+
+ int max = vscrollbar_ctrl.Maximum;//-
(page_size) + 1;
+
+ int val = vscrollbar_ctrl.Value + delta;
+ if (val > max)
+ val = max;
+ else if (val < vscrollbar_ctrl.Minimum)
+ val = vscrollbar_ctrl.Minimum;
+ vscrollbar_ctrl.Value = val;
+ }
+
+ private void OnMouseWheelCLB (object sender,
MouseEventArgs me)
+ {
+ if (owner.Items.Count == 0)
+ return;
+
+ int lines = me.Delta / 120 *
SystemInformation.MouseWheelScrollLines;
+ Scroll (-lines);
+ }
+
// Value Changed
private void VerticalScrollEvent (object sender,
EventArgs e)
{
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches