1. 首先是在页面上添加3个lable 第一次点击lable会有相应的数据被查询出来 第二次点击同一个lable会刷新所有的数据
1 public partial class frmSelCase
2 {
3 private List<Label> m_lstLabel = new List<Label>();
4 }
5
6 //单数次颜色变为蓝色 偶数次颜色为默认色
7 bool[] labelClick = { false, false, false };
8
9 private void initControls()
10 {
11 //三个lable的点击事件
12 labDay.Click += new EventHandler(labDay_Click);
13 labWeek.Click += new EventHandler(labWeek_Click);
14 labMonth.Click += new EventHandler(labMonth_Click);
15
16 initResonArray();
17 for (int i = 0; i < m_lstLabel.Count; i++)
18 {
19 Label labLeaveReson = m_lstLabel[i];
20 labLeaveReson.Click += new EventHandler(lab_Click);
21 }
22 }
23
24 private void initResonArray()
25 {
26 m_lstLabel.Add(labDay);
27 m_lstLabel.Add(labWeek);
28 m_lstLabel.Add(labMonth);
29 }
30
31 //将切换了lable颜色的事件我写到了一起
32
33 private void lab_Click(object sender, EventArgs e)
34 {
35 if (null == m_lstLabel) return;
36 if (null == sender) return;
37 Label labCurClick = (Label)sender;
38
39 for (int i = 0; i < m_lstLabel.Count; i++)
40 {
41 Label labReson = m_lstLabel[i];
42
43 if (labReson.Name == labCurClick.Name && labelClick[i] == false)
44 {
45 if (labReson.BackColor != Color.FromArgb(16, 155, 246)) labReson.BackColor = Color.FromArgb(16, 155, 246);
46 if (labReson.ForeColor != Color.FromArgb(255, 255, 255)) labReson.ForeColor = Color.FromArgb(255, 255, 255);
47 labelClick[i] = true;
48 }
49 else
50 {
51 if (labReson.BackColor != Color.FromArgb(217, 229, 238)) labReson.BackColor = Color.FromArgb(217, 229, 238);
52 if (labReson.ForeColor != Color.FromArgb(17, 95, 124)) labReson.ForeColor = Color.FromArgb(17, 95, 124);
53 labelClick[i] = false;
54 }
55 }
56 }
57
58 //获取时间段
59 private void getDateRange(DateRange range, out DateTime startTime, out DateTime endTime)
60 {
61 startTime = DateTime.MinValue;
62 endTime = DateTime.MinValue;
63
64 DateTime dtNow = DateTime.Now;
65
66 switch (range)
67 {
68 case DateRange.Day:
69 startTime = dtNow.Date;
70 endTime = dtNow.AddDays(1).AddSeconds(-1);
71 break;
72 case DateRange.Week:
73 startTime = dtNow.Date.AddDays(1 -Convert.ToInt32(dtNow.DayOfWeek.ToString("d")));
74 endTime = startTime.AddDays(7).AddSeconds(-1);
75 break;
76 case DateRange.Month:
77 startTime = dtNow.Date.AddDays(1 - DateTime.Now.Date.Day);
78 endTime = startTime.AddMonths(1).AddSeconds(-1);
79 break;
80 case DateRange.None:
81 default:
82 break;
83 }
84 }
85
86 //单击本日 查询本日的数据 再点击一下就还原lable的颜色和初始数据
87 private void labDay_Click(object sender, EventArgs e)
88 {
89 if (DateRange.Day == m_dateRange)
90 {
91 m_dateRange = DateRange.None;
92 }
93 else
94 {
95 m_dateRange = DateRange.Day;
96 }
97 getDateRange(m_dateRange, out m_dtFilter_StartTime, out m_dtFilter_EndTime);
98 String strInputText = InputText.ToUpper();
99 if (SysDefine.FAILED == refreshList(0, strInputText))
100 {
101 MessageBox.Show(this.ErrorText, "信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
102 }
103 }
104
105 //单击本周 查询本周的数据 再点击一下就还原lable的颜色和初始数据
106 private void labWeek_Click(object sender, EventArgs e)
107 {
108 if (DateRange.Week == m_date