What is the best approach to determine if there is a change?

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hello, friends,

We are developing c#.net Windows app using .net 2005. In a form, there are
about 80 editable controls, such as text boxes, combo boxes, masket boxes,
etc.

We need to detect if any of their values has been changed when a user
decides to close this window. If yes, we need to prompt a message and save
accordingly.

Of course, we can write 80 ValueChanged() event handler for each control to
monitor its value. But, do we have a better way to do this?

Thanks a lot.
 
Andrew said:
We are developing c#.net Windows app using .net 2005. In a form, there are
about 80 editable controls, such as text boxes, combo boxes, masket boxes,
etc.

We need to detect if any of their values has been changed when a user
decides to close this window. If yes, we need to prompt a message and save
accordingly.

Of course, we can write 80 ValueChanged() event handler for each control
to
monitor its value. But, do we have a better way to do this?

In the page load event, I would rip through the controls, and add in a
changed handler. Your code will end up looking like:

foreach(control c in this.controls)
{
if (typeof(c) is textBox)
((TextBox)c).TextChanged += TextChangedHandler(...);
if (typeof(c) is listbox)
((ListBox)c).SelectedIndexChanged += LBChangedHandler(...);
}

Another option is to databind all your fields/controls, then let the dataset
tell you that things have changed.
 
Thanks a lot, but databind is not an option since our data are
populated/saved through web services.
 
Andrew said:
Thanks a lot, but databind is not an option since our data are
populated/saved through web services.

You can databind against pretty much anything... If you're fetching the
data from a web service then you must be storing it locally in some kind
of class and should be able to bind to the properties of that class.

None the less, the other solution proposed should work fine as well if
you don't like data binding.

Best Regards,

James Crosswell
Microforge.net LLC
http://www.microforge.net
 
Back
Top