gpt4 book ai didi

c# - MonthCalendar 上的 DateChanged 事件有问题

转载 作者:太空宇宙 更新时间:2023-11-03 20:37:14 24 4
gpt4 key购买 nike

尝试谷歌搜索,但无法真正找到答案。

拥有一个带有 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();
}

最佳答案

不捕获所有 DateChanged 事件,但解决方案是处理 DateChangedKeyUpMouseUp 事件.

DateChanged 事件将 bool 值 IsDateChanged 设置为 trueKeyUpMouseUp 事件处理检查是否 IsDateChanged 并执行必要的代码 + 将 IsDateChanged 设置为 false.

关于c# - MonthCalendar 上的 DateChanged 事件有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4564355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com