在datetimepicker中检查值是否已更改

时间:2011-09-13 10:13:44

标签: c# .net

我在表单上有2个datetimepicker有加入和离开日期,如果我不改变这些值而不是在total_button_click上抛出异常,因为它的默认值是今天的日期,所以我想只在datetimepicker值启用total_button得到改变,我可以使用datetimepicker的任何属性为此目的,下面是total_button的代码

private void Total_button_Click(object sender, EventArgs e)
{
    int remain, re, d, r;
    string oday;                
    decimal sum = dataGridView1.Rows.OfType<DataGridViewRow>()
            .Sum(row => Convert.ToDecimal(row.Cells["Money"].Value));

    // total amnt drawn
    textBox1.Text = sum.ToString();
    d = int.Parse(textBox3.Text);
    int div = d / 30;

    // 1 day payment
    oday = div.ToString();
    textBox6.Text = (dateTimePicker2.Value - dateTimePicker1.Value).TotalDays.ToString("#");
    re = int.Parse(textBox6.Text) * int.Parse(oday);

    // total  days paymnt
    textBox7.Text = re.ToString();
    r = int.Parse(textBox7.Text) - int.Parse(textBox1.Text);

    // total payment -drawn i.e to b payed                
    textBox8.Text = r.ToString();
}

2 个答案:

答案 0 :(得分:2)

使用DateTimePickerEvent ValueChanged http://msdn.microsoft.com/de-de/library/system.windows.forms.datetimepicker.valuechanged.aspx。如果调用该事件,您可以启用按钮。

答案 1 :(得分:0)

要使其正常工作,您需要datetimepicker的ValueChanged事件

dateTimePicker1.ValueChanged += new EventHandler(dateTimePicker1_ValueChanged);

现在即使您从显示的日历中选择当前日期,也会激活,以避免将格式设置为仅日期并避免时间组件如

dateTimePicker1.Value = DateTime.Today;

现在只有在您更改日期时才会启动,在此范围内您可以启用所需的按钮