C# 检测月历C中已更改的月份#
C中有一个MonthCalender# 有两个按钮可选择月份 一月、二月等等 无论如何,我可以检测到用户更改了月份吗?试试这个C# 检测月历C中已更改的月份#,c#,winforms,C#,Winforms,C中有一个MonthCalender# 有两个按钮可选择月份 一月、二月等等 无论如何,我可以检测到用户更改了月份吗?试试这个 private int MonthValue = 0; private bool bChanged = false; private void Form1_Load(object sender, EventArgs e) { MonthValue = monthCalendar1.TodayDate.Month; } private void monthCale
private int MonthValue = 0;
private bool bChanged = false;
private void Form1_Load(object sender, EventArgs e)
{
MonthValue = monthCalendar1.TodayDate.Month;
}
private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
if (MonthValue != monthCalendar1.SelectionStart.Month)
{
//changed
bChanged = true;
MonthValue = monthCalendar1.SelectionStart.Month;
}
else
{
//not changed
bChanged = false;
}
}
在日历控件上使用
OnVisibleMonthChanged
,并创建如下事件:
protected void Calendar1_VisibleMonthChanged(object sender, MonthChangedEventArgs e)
{
// Further processing goes here
}
您可能可以将代理添加到按钮的单击事件中,但这只是猜测,从未使用过该控件。是。。这是一个正确的答案。但是,只有当您单击月份名称并选择其他月份时,这种方法才有效。如果你点击两个带“>”或“你有没有试着像我一样使用它,它可以很好地使用”。如果它进入if语句,我会放一个messagebox。因此messagebox会弹出新的月份。如果我点击新的月份,下个月会再次弹出。它会不停地弹出。这是你的意思吗?private void monthCalendar1\u DateChanged(对象发送者,DateRangeEventArgs e){if(MonthValue!=monthCalendar1.SelectionStart.Month){//changed bChanged=true;MonthValue=monthCalendar1.SelectionStart.Month;MessageBox.Show(“New Month”);}否则{//not changed bChanged=false;}是的..在MessageBox中,我没有写“New month”,而是写了MonthValue.ToString(),所以当前月份是10。如果我单击“>”,会弹出11。当我单击OK时,会弹出12,然后是1、2、3,依此类推。。