c#循环并以编程方式获取表单中所有datetimepicker的值
c# loop and get the values of all datetimepicker in form programmatically
我有一个包含多个 TextBox
和 NumericUpDown
以及 DateTimePicker
的表单。我想以编程方式获取此控件的所有值并将它们插入 sql 服务器数据库
我试过这个代码
foreach (Control contrl in this.Controls)
{
if (contrl.Name != "")
{
vv.Add(contrl.Text);
//MessageBox.Show(contrl.Name);
}
}
它让我得到 TextBox
和 NumericUpDown
的正确值,但不是 DateTimePicker
DateTimePicker
和 NumericUpDown
使用 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());
}
}
我有一个包含多个 TextBox
和 NumericUpDown
以及 DateTimePicker
的表单。我想以编程方式获取此控件的所有值并将它们插入 sql 服务器数据库
我试过这个代码
foreach (Control contrl in this.Controls)
{
if (contrl.Name != "")
{
vv.Add(contrl.Text);
//MessageBox.Show(contrl.Name);
}
}
它让我得到 TextBox
和 NumericUpDown
的正确值,但不是 DateTimePicker
DateTimePicker
和 NumericUpDown
使用 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());
}
}