這個我是在winform的頁面上做的 1. 首先是在頁面上添加3個lable 第一次點擊lable會有相應的數據被查詢出來 第二次點擊同一個lable會刷新所有的數據 2.點擊不同的label會有顏色提示當前點擊的是哪一個 第二次點擊的時候會還原lable的顏色 3.根據本日 本周 本月查詢數據 是 ...
這個我是在winform的頁面上做的
1. 首先是在頁面上添加3個lable 第一次點擊lable會有相應的數據被查詢出來 第二次點擊同一個lable會刷新所有的數據
2.點擊不同的label會有顏色提示當前點擊的是哪一個 第二次點擊的時候會還原lable的顏色
3.根據本日 本周 本月查詢數據 是根據時間段來查詢的 所以應該要先獲取到本日的時間段 本周的時間段和本月的時間段
本日 labDay 本周 labWeek 本月 labMonth
代碼如下
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_dateRange) 109 { 110 m_dateRange = DateRange.None; 111 } 112 else 113 { 114 m_dateRange = DateRange.Week; 115 } 116 117 getDateRange(m_dateRange, out m_dtFilter_StartTime, out m_dtFilter_EndTime); 118 119 String strInputText = InputText.ToUpper(); 120 if (SysDefine.FAILED == refreshList(0, strInputText)) 121 { 122 MessageBox.Show(this.ErrorText, "信息", MessageBoxButtons.OK, MessageBoxIcon.Warning); 123 } 124 125 } 126 127 //單擊本月 查詢本月的數據 再點擊一下就還原lable的顏色和初始數據 128 private void labMonth_Click(object sender, EventArgs e) 129 { 130 if (DateRange.Month == m_dateRange) 131 { 132 m_dateRange = DateRange.None; 133 } 134 else 135 { 136 m_dateRange = DateRange.Month; 137 } 138 139 getDateRange(m_dateRange, out m_dtFilter_StartTime, out m_dtFilter_EndTime); 140 141 String strInputText = InputText.ToUpper(); 142 if (SysDefine.FAILED == refreshList(0, strInputText)) 143 { 144 MessageBox.Show(this.ErrorText, "信息", MessageBoxButtons.OK, MessageBoxIcon.Warning); 145 } 146 } 147 148 //將當前lable的狀態定位四個 未選中 選中day 選中week 選中 Month 149 private DateRange m_dateRange = DateRange.None; 150 private enum DateRange 151 { 152 None = 0, 153 Day = 1, 154 Week = 2, 155 Month = 3 156 } 157 158 public String InputText 159 { 160 get { return ucPages.InputText; } 161 set { ucPages.InputText = value; } 163 } 164 165 private DateTime m_dtFilter_StartTime = DateTime.MinValue; 166 public DateTime Filter_StartDate 167 { 168 get { return m_dtFilter_StartTime; } 169 } 170 171 private DateTime m_dtFilter_EndTime = DateTime.MinValue; 172 public DateTime Filter_EndDate 173 { 174 get { return m_dtFilter_EndTime; } 175 }