尝试谷歌搜索,但无法真正找到答案。
拥有一个带有 MonthCalendar 控件和处理 DateChanged 事件的 Windows 窗体。该问题与通过鼠标单击更改月份有关。
我尝试在标签中显示一个计数器值,每次调用事件处理程序时都会对其进行计数。当月份更改时,事件处理程序被调用 2 次。
当在事件处理中调用 MessageBox.Show("anything") 时,事件处理程序似乎被调用了几次,并且日历开始永远向后更改一个月。
有人知道为什么吗?
windows窗体类中的以下代码会导致所描述的行为:
private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
int i = int.Parse(labelDateChanged.Text);
labelDateChanged.Text = (i + 1).ToString();
MessageBox.Show(i.ToString());
}
private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
{
int i = int.Parse(labelDateSelected.Text);
labelDateSelected.Text = (i + 1).ToString();
}