这个我是在winform的页面上做的
1. 首先是在页面上添加3个lable 第一次点击lable会有相应的数据被查询出来 第二次点击同一个lable会刷新所有的数据
2.点击不同的label会有颜色提示当前点击的是哪一个 第二次点击的时候会还原lable的颜色
3.根据本日 本周 本月查询数据 是根据时间段来查询的 所以应该要先获取到本日的时间段 本周的时间段和本月的时间段
本日 labDay 本周 labWeek 本月 labMonth
代码如下
public partial class frmSelCase
{
private List<Label> m_lstLabel = new List<Label>();
} //单数次颜色变为蓝色 偶数次颜色为默认色
bool[] labelClick = { false, false, false }; private void initControls()
{
//三个lable的点击事件
labDay.Click += new EventHandler(labDay_Click);
labWeek.Click += new EventHandler(labWeek_Click);
labMonth.Click += new EventHandler(labMonth_Click); initResonArray();
for (int i = ; i < m_lstLabel.Count; i++)
{
Label labLeaveReson = m_lstLabel[i];
labLeaveReson.Click += new EventHandler(lab_Click);
}
} private void initResonArray()
{
m_lstLabel.Add(labDay);
m_lstLabel.Add(labWeek);
m_lstLabel.Add(labMonth);
} //将切换了lable颜色的事件我写到了一起 private void lab_Click(object sender, EventArgs e)
{
if (null == m_lstLabel) return;
if (null == sender) return;
Label labCurClick = (Label)sender; for (int i = ; i < m_lstLabel.Count; i++)
{
Label labReson = m_lstLabel[i]; if (labReson.Name == labCurClick.Name && labelClick[i] == false)
{
if (labReson.BackColor != Color.FromArgb(, , )) labReson.BackColor = Color.FromArgb(, , );
if (labReson.ForeColor != Color.FromArgb(, , )) labReson.ForeColor = Color.FromArgb(, , );
labelClick[i] = true;
}
else
{
if (labReson.BackColor != Color.FromArgb(, , )) labReson.BackColor = Color.FromArgb(, , );
if (labReson.ForeColor != Color.FromArgb(, , )) labReson.ForeColor = Color.FromArgb(, , );
labelClick[i] = false;
}
}
} //获取时间段
private void getDateRange(DateRange range, out DateTime startTime, out DateTime endTime)
{
startTime = DateTime.MinValue;
endTime = DateTime.MinValue; DateTime dtNow = DateTime.Now; switch (range)
{
case DateRange.Day:
startTime = dtNow.Date;
endTime = dtNow.AddDays().AddSeconds(-);
break;
case DateRange.Week:
startTime = dtNow.Date.AddDays( -Convert.ToInt32(dtNow.DayOfWeek.ToString("d")));
endTime = startTime.AddDays().AddSeconds(-);
break;
case DateRange.Month:
startTime = dtNow.Date.AddDays( - DateTime.Now.Date.Day);
endTime = startTime.AddMonths().AddSeconds(-);
break;
case DateRange.None:
default:
break;
}
} //单击本日 查询本日的数据 再点击一下就还原lable的颜色和初始数据
private void labDay_Click(object sender, EventArgs e)
{
if (DateRange.Day == m_dateRange)
{
m_dateRange = DateRange.None;
}
else
{
m_dateRange = DateRange.Day;
}
getDateRange(m_dateRange, out m_dtFilter_StartTime, out m_dtFilter_EndTime);
String strInputText = InputText.ToUpper();
if (SysDefine.FAILED == refreshList(, strInputText))
{
MessageBox.Show(this.ErrorText, "信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
} //单击本周 查询本周的数据 再点击一下就还原lable的颜色和初始数据
private void labWeek_Click(object sender, EventArgs e)
{
if (DateRange.Week == m_dateRange)
{
m_dateRange = DateRange.None;
}
else
{
m_dateRange = DateRange.Week;
} getDateRange(m_dateRange, out m_dtFilter_StartTime, out m_dtFilter_EndTime); String strInputText = InputText.ToUpper();
if (SysDefine.FAILED == refreshList(, strInputText))
{
MessageBox.Show(this.ErrorText, "信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
} } //单击本月 查询本月的数据 再点击一下就还原lable的颜色和初始数据
private void labMonth_Click(object sender, EventArgs e)
{
if (DateRange.Month == m_dateRange)
{
m_dateRange = DateRange.None;
}
else
{
m_dateRange = DateRange.Month;
} getDateRange(m_dateRange, out m_dtFilter_StartTime, out m_dtFilter_EndTime); String strInputText = InputText.ToUpper();
if (SysDefine.FAILED == refreshList(, strInputText))
{
MessageBox.Show(this.ErrorText, "信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
} //将当前lable的状态定位四个 未选中 选中day 选中week 选中 Month
private DateRange m_dateRange = DateRange.None;
private enum DateRange
{
None = ,
Day = ,
Week = ,
Month =
} public String InputText
{
get { return ucPages.InputText; }
set { ucPages.InputText = value; }
} private DateTime m_dtFilter_StartTime = DateTime.MinValue;
public DateTime Filter_StartDate
{
get { return m_dtFilter_StartTime; }
} private DateTime m_dtFilter_EndTime = DateTime.MinValue;
public DateTime Filter_EndDate
{
get { return m_dtFilter_EndTime; }
}