c#循环并以编程方式获取表单中所有datetimepicker的值

c# loop and get the values of all datetimepicker in form programmatically

我有一个包含多个 TextBoxNumericUpDown 以及 DateTimePicker 的表单。我想以编程方式获取此控件的所有值并将它们插入 sql 服务器数据库

我试过这个代码

 foreach (Control contrl in this.Controls)
 {
     if (contrl.Name != "")
     {
           vv.Add(contrl.Text);
           //MessageBox.Show(contrl.Name);   
     }

} 

它让我得到 TextBoxNumericUpDown 的正确值,但不是 DateTimePicker

DateTimePickerNumericUpDown 使用 Value 属性 来获取它的内容,TextBox 使用 Text 属性.

所以需要检查每个控件的类型

foreach (Control contrl in this.Controls)
{
    if (contrl.Name != "")
    {
         if(contrl is TextBox)
            vv.Add(((TextBox)contrl).Text);     
         else if(contrl is DateTimePicker)
            vv.Add(((DateTimePicker)contrl).Value);
         else if(contrl is NumericUpDown)
            vv.Add(((NumericUpDown)contrl).Value);
    }

} 
DateTimePicker 

不将其值存储在 "Text" 属性 中,而是存储在 "Value" 属性

所以尝试在这个循环中添加一个条件,

foreach (Control contrl in this.Controls)
 {
      if (contrl.Name != "")
      {
         vv.Add(contrl.Text);
         //MessageBox.Show(contrl.Name);   
      }

      if (contrl.Name == "YOurDateTimePickerControlName")
      {
         vv.Add(contrl.Value.ToString());
      }

 }