9 |
|
|
10 |
|
namespace System.Windows.Forms |
11 |
|
{ |
12 |
+ |
[DefaultEvent("ValueChanged")] |
13 |
|
public partial class MaskedHexBox : UserControl |
14 |
|
{ |
15 |
|
public MaskedHexBox() |
24 |
|
this.isAddressMask = true; |
25 |
|
txtMaskedHexBox.KeyDown += new KeyEventHandler(txtMaskedHexBox_KeyDown); |
26 |
|
txtMaskedHexBox.TextAlign = HorizontalAlignment.Right; |
27 |
< |
|
27 |
> |
ValueChanged = null; |
28 |
|
} |
29 |
+ |
[Browsable(true)] |
30 |
+ |
[Category("Property Changed")] |
31 |
+ |
[Description("Raised when the Value displayed changes.")] |
32 |
+ |
public event EventHandler<ValueChangedEventArgs> ValueChanged; |
33 |
|
|
34 |
|
private void MaskedHexBox_KeyDown(object sender, KeyEventArgs e) |
35 |
|
{ |
83 |
|
get { return this.ToInt64(); } |
84 |
|
set |
85 |
|
{ |
86 |
+ |
long old_value = this.Value; |
87 |
|
switch (this.TextLength) |
88 |
|
{ |
89 |
|
case 0: |
97 |
|
case 8: this.Text = string.Format("0x{0:x8}", value); break; |
98 |
|
default: this.Text = string.Format("0x{0:x" + this.TextLength + "}", value); break; |
99 |
|
} |
100 |
+ |
long new_value = this.Value; |
101 |
+ |
if ((new_value!= old_value) && ValueChanged != null) |
102 |
+ |
ValueChanged(this, new ValueChangedEventArgs(old_value, new_value)); |
103 |
|
} |
104 |
|
} |
105 |
|
private bool _isAddressMask; |