title: Check Control.Value for data
body: <p>I have several different controls (TextBoxes, DateTimePickers, MaskedTextBoxes) on a form that I would like to check to see if they contain any data.  I have the following code in the Click event of my "Save" button:</p>
  
  <pre><code>    private void radBtnSave_Click(object sender, EventArgs e)
      {
          this.Cancelled = false;
          bool bValid = true;
  
          foreach(Control control in this.Controls)
          {
              if (control.Tag == "Required")
              {
                  if (control.Text == "" || control.Text == null)
                  {
                      errorProvider.SetError(control, "* Required Field");
                      bValid = false;
                  }
                  else
                  {
                      errorProvider.SetError(control, "");
                  }
              }
          }
  
          if (bValid == true)
          {
              bool bSaved = A133.SaveData();
              if (bSaved != true)
              {
                  MessageBox.Show("Error saving record");
              }
              else
              {
                  MessageBox.Show("Data saved successfully!");
              }
          }
      }
  </code></pre>
  
  <p>This works fine for the TextBoxes and MaskedEditBoxes, however, it does not work for the DateTimePickers.  For those, I know I need to check the .Value property, but I cannot seem to access that from the Control object (i.e. "control.Value == "" || control.Value == null").</p>
  
  <p>Am I missing something obvious?  Any suggestions of modifications I can make to this code to allow me to check the DateTimePicker values (or just to improve the code at all) will be greatly appreciated.</p>