每次我点击小时按钮或分钟按钮时,它应填充一个文本框,并在24小时格式内每小时按钮增加1小时。这同样适用于分钟按钮。目前它不是迭代的,只是只增加一次。
private void Cld_SelectedDateChanged(object sender,vhCalendar.SelectedDateChangedEventArgs e)
{
textBox1.Text = e.NewDate.ToString();
txtHH.Text = DateTime.Now.Hour.ToString();
txtMM.Text = DateTime.Now.Minute.ToString();
}
private void btnAddHour_Click( object sender, RoutedEventArgs e )
{
txtHH.Text = DateTime.Today.AddHours( 1 ).ToString("HH");
}
private void btnAddMinute_Click( object sender, RoutedEventArgs e )
{
txtMM.Text = DateTime.Today.AddMinutes( 1 ).ToString( "mm" );
}
答案 0 :(得分:3)
每次单击时都要向current date
添加一个,如果查看代码,则需要将1添加到文本框的当前日期值,但是要将其添加到{{1每次点击一遍又一遍。
因此,DateTime.Today
文本框中的当前值(如果不为空),否则设置为当前日期,然后将分钟/小时添加到此值。
tryparse
这是假设填充了文本框,或者您需要先分配它。
如果文本框没有值,您可以获得private void btnAddHour_Click( object sender, RoutedEventArgs e )
{
DateTime curDate;
DateTime.TryParse(txtHH.Text, out curDate);
txtHH.Text =curDate.AddHours( 1 ).ToString("HH");
}
的结果,并将值设置为当前日期。
TryParse
答案 1 :(得分:1)
DateTime.Today
返回类似21/08/2013 00:00:00
的内容。
每次调用时都会返回相同的DateTime
。
您需要添加点击计数器并添加计数器或存储DateTime.Today
的初始结果并继续增加。
请注意,如果在应用程序执行过程中更改了日期,则第二个解决方案是您需要使用的解决方案,因为在第一个解决方案中,日期将会增加而不需要它。
答案 2 :(得分:1)
DateTime.AddHours()和DateTime.AddMinutes()在调用它们时都返回DateTime的新实例。您应该保留已返回实例的记录,并在下次单击“小时”按钮或“分钟”按钮时调用它。这就是你的代码的样子:
private DateTime m_LastDateTime;
private void Cld_SelectedDateChanged(object sender, EventArgs e)
{
m_LastDateTime = e.Start;
textBox1.Text = m_LastDateTime.ToString();
txtHH.Text =m_LastDateTime.Hour.ToString();
txtMM.Text =m_LastDateTime.Minute.ToString();
}
private void btnAddHour_Click( object sender, RoutedEventArgs e )
{
m_LastDateTime = m_LastDateTime.AddHours(1);
txtHH.Text = m_LastDateTime.ToString("HH");
}
private void btnAddMinute_Click( object sender, RoutedEventArgs e )
{
m_LastDateTime = m_LastDateTime.AddMinutes(1);
txtMM.Text = m_LastDateTime.ToString( "mm" );
}