I was aware of that function, but there does not appear to be a function that works in reverse order, so that the array is copied back in to the "non-reference" copy.

But anyway, I might not have explained well enough. The idea is to have a control, which is as fully self-contained as possible, where inside its class, it can monitor whether a change was made to it.

It is easy to monitor a change, BUT..... What about when the user UNDOES the change, thereby rendering the value back equal to the control's ORIGINAL value?

To use pseudo-code:

If (this.Value!=this.OriginalValue)
Do something....