2015-05-04 32 views
1

我有一個窗體與多個TextBoxNumericUpDownDateTimePicker。我想編程此控件的所有值,並將其插入到SQL Server數據庫c#循環並以編程方式獲取所有datetimepicker的值在窗體中

我想這個代碼

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

} 

能把我的TextBoxNumericUpDown正確的價值觀,但不DateTimePicker

+1

這是因爲DateTimePicker的值存儲在Value中,而不是像Text那樣存儲在Text中n'Textbox' – Jibbow

+0

您可能必須轉換爲DateTimePicker並檢查轉換是否成功,例如:var picker = control as DateTimePicker; if(picker!= null){var value =((DateTimePicker)picker).Value; }' –

回答

4

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); 
    } 

} 
0
DateTimePicker 

的類型不其值存儲在「文本」屬性,而不是將其存儲在「值」屬性

所以嘗試在這個循環中添加一個條件,

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()); 
     } 

} 
相關問題