Simplify Your Code with Reflection: Listing 1: XML, Determine the Controls to Check

You can use XML to help you determine whether a user has made any changes to the data on one of your forms (if the form is "dirty"). This code checks for the standard TextBox, CheckBox, ComboBox, ListBox, CheckedListBox, and MonthCalendar controls, but you can easily add other custom controls with unique names to this list.

<?xml version="1.0" encoding="utf-8" ?>
<Controls>
   <Control>
      <Type>System.Windows.Forms.TextBox</Type>
      <Property1>Text</Property1>
      <Property2></Property2>
      <IsMultiList>No</IsMultiList>
      <PropertyToCheck></PropertyToCheck>
      <PropertyToCheckValue></PropertyToCheckValue>
   </Control>
   <Control>
      <Type>System.Windows.Forms.CheckBox</Type>
      <Property1>Checked</Property1>
      <Property2></Property2>
      <IsMultiList>No</IsMultiList>
      <PropertyToCheck></PropertyToCheck>
      <PropertyToCheckValue></PropertyToCheckValue>
   </Control>
   <Control>
      <Type>System.Windows.Forms.ComboBox</Type>
      <Property1>SelectedIndex</Property1>
      <Property2>Text</Property2>
      <IsMultiList>No</IsMultiList>
      <PropertyToCheck>DropDownStyle</PropertyToCheck>
      <PropertyToCheckValue>
         DropDownList</PropertyToCheckValue>
   </Control>
   <Control>
      <Type>System.Windows.Forms.ListBox</Type>
      <Property1>SelectedIndex</Property1>
      <Property2></Property2>
      <IsMultiList>Yes</IsMultiList>
      <PropertyToCheck>SelectionMode</PropertyToCheck>
      <PropertyToCheckValue>One</PropertyToCheckValue>
   </Control>
   <Control>
      <Type>System.Windows.Forms.CheckedListBox</Type>
      <Property1></Property1>
      <Property2></Property2>
      <IsMultiList>Yes</IsMultiList>
      <PropertyToCheck></PropertyToCheck>
      <PropertyToCheckValue></PropertyToCheckValue>
   </Control>
   <Control>
      <Type>System.Windows.Forms.MonthCalendar</Type>
      <Property1>SelectionStart</Property1>
      <Property2>SelectionEnd</Property2>
      <IsMultiList>No</IsMultiList>
      <PropertyToCheck></PropertyToCheck>
      <PropertyToCheckValue></PropertyToCheckValue>
   </Control>
</Controls>
comments powered by Disqus
Upcoming Events

.NET Insight

Sign up for our newsletter.

I agree to this site's Privacy Policy.