Please do not reply to this email- if you want to comment on the bug, go to the URL shown below and enter your comments there.
Changed by [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=80166 --- shadow/80166 2006-12-06 09:29:36.000000000 -0500 +++ shadow/80166.tmp.4126 2006-12-06 09:29:36.000000000 -0500 @@ -0,0 +1,74 @@ +Bug#: 80166 +Product: Mono: Class Libraries +Version: 1.2 +OS: Windows XP +OS Details: +Status: NEW +Resolution: +Severity: +Priority: Cosmetic +Component: Windows.Forms +AssignedTo: [EMAIL PROTECTED] +ReportedBy: [EMAIL PROTECTED] +QAContact: [EMAIL PROTECTED] +TargetMilestone: --- +URL: +Cc: +Summary: Using the mouse wheel on a NumericUpDown + +Description of Problem: +Using the mouse wheel on a NumericUpDown seems to modify Value by 2 * +Increment. Microsoft .NET Framework seems to use the product of Increment +and the number of lines specified on the Wheel tab of the Mouse properties +page in Control Panel. + +Steps to reproduce the problem: +1. Compile and run the following program. +using System.Windows.Forms; +class TestForm : Form { + static void Main() { + Application.Run(new TestForm()); + } + public TestForm() { + NumericUpDown NumericUpDown = new NumericUpDown(); + NumericUpDown.Increment = 10; + Controls.Add(NumericUpDown); + } +} +2. Use the mouse wheel. + +Actual Results: +The value is modified by 20 (2 * Increment), which is strange, because +this code seems to try to prevent that (in the UpDownBase class): + + protected override void OnMouseWheel(MouseEventArgs e) { + // prevent this event from firing twice for the same +mouse action! + if (GetChildAtPoint(new Point(e.X, e.Y)) == null) + txtView_MouseWheel(null, e); + } + +Expected Results: +The value is modified as in Microsoft .NET Framework or at least by 30 (3 +* Increment) as Theme.MouseWheelScrollLines is currently hardcoded to +return 3. + +How often does this happen? +Always. + +Additional Information: +I think the value of SystemInformation.MouseWheelScrollLines should be +used, possibly like this (in the NumericUpDown class) : + public override void UpButton() { + if (UserEdit) + ParseEditText(); + + Value = Math.Min(maximum, unchecked(dvalue + increment * +SystemInformation.MouseWheelScrollLines)); + } +(the same for DownButton) + +You may find useful information about implementing +SystemInformation.MouseWheelScrollLines on Windows here: +http://msdn2.microsoft.com/en-us/library/ +ms645602.aspx#retrieving_wheel_scroll _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
