// Peter Bartok <pbartok@novell.com>
//
-// COMPLETE
-
using System;
using System.Collections;
using System.ComponentModel;
namespace System.Windows.Forms {
[DefaultEvent("ValueChanged")]
[DefaultProperty("Value")]
+#if NET_2_0
+ [DefaultBindingProperty ("Value")]
+ [ClassInterface (ClassInterfaceType.AutoDispatch)]
+ [ComVisible (true)]
+#endif
public class NumericUpDown : UpDownBase, ISupportInitialize {
#region Local Variables
private int suppress_validation;
maximum = 100M;
minimum = 0.0M;
thousands_separator = false;
+
+ Text = "0";
}
#endregion // Public Constructors
[Bindable(true)]
public decimal Value {
get {
+ if (UserEdit)
+ ParseEditText();
return dvalue;
}
}
protected virtual void OnValueChanged(EventArgs e) {
- if (ValueChanged != null) {
- ValueChanged(this, e);
- }
+ EventHandler eh = (EventHandler)(Events [ValueChangedEvent]);
+ if (eh != null)
+ eh (this, e);
}
protected void ParseEditText() {
if (!hexadecimal) {
dvalue = decimal.Parse(user_edit_text, CultureInfo.CurrentCulture);
} else {
-#if NET_1_1
+#if !NET_2_0
dvalue = Convert.ToDecimal (Convert.ToInt32 (user_edit_text, 16));
#else
dvalue = Convert.ToDecimal (Convert.ToInt32 (user_edit_text, 10));
}
#if NET_2_0
- protected override void OnLostFocus(EventArgs e) {
- base.OnLostFocus(e);
- if (this.UserEdit)
- this.UpdateEditText();
- }
+ protected override void OnLostFocus(EventArgs e) {
+ base.OnLostFocus(e);
+ if (this.UserEdit)
+ this.UpdateEditText();
+ }
#endif
#endregion // Protected Instance Methods
#region Events
- public event EventHandler ValueChanged;
+ static object ValueChangedEvent = new object ();
+
+ public event EventHandler ValueChanged {
+ add { Events.AddHandler (ValueChangedEvent, value); }
+ remove { Events.RemoveHandler (ValueChangedEvent, value); }
+ }
[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
- public event EventHandler TextChanged;
+ public new event EventHandler TextChanged {
+ add { base.TextChanged += value; }
+ remove { base.TextChanged -= value; }
+ }
#endregion // Events
}
}