?
有時(shí)候在一個(gè)窗體中有比較多的RadioButton,它們往往是作為取數(shù)據(jù)、業(yè)務(wù)邏輯等操作的條件。例如下圖例子所示:
用戶(hù)選擇“全部”則會(huì)帶出全部符合條件數(shù)據(jù)、選擇了“已審核”則會(huì)取出全部符合條件的已經(jīng)審核過(guò)后的數(shù)據(jù).......我們一般的處理方法是每個(gè)RadioButton控件有一個(gè)CheckedChanged事件。如下面代碼所示
代碼
private void rdAll_CheckedChanged(object sender, EventArgs e)
??????? {
if (rdAll.Checked)
??????????? {
this.gvData.DataSource = GetDataSource("ALL");
??????????? }
??????? }
private void rdAudit_CheckedChanged(object sender, EventArgs e)
??????? {
if (rdAudit.Checked)
??????????? {
this.gvData.DataSource = GetDataSource("Audit");
??????????? }
??????? }
private void rdNotAudit_CheckedChanged(object sender, EventArgs e)
??????? {
if (rdNotAudit.Checked)
??????????? {
this.gvData.DataSource = GetDataSource("NotAudit");
??????????? }
??????? }
private void rdBilled_CheckedChanged(object sender, EventArgs e)
??????? {
if (rdBilled.Checked)
??????????? {
this.gvData.DataSource = GetDataSource("Bill");
??????????? }
??????? }
private void rdUnBill_CheckedChanged(object sender, EventArgs e)
??????? {
if (rdUnBill.Checked)
??????????? {
this.gvData.DataSource = GetDataSource("UnBill");
??????????? }
??????? }
當(dāng)窗體的RadioButton控件比價(jià)多時(shí),那么放眼望去,代碼里面到處都是CheckedChanged事件、簡(jiǎn)直有如洪水泛濫。呵呵
其實(shí)我們可以委托來(lái)改進(jìn)代碼、這樣可以讓代碼看起來(lái)簡(jiǎn)潔、邏輯清晰、代碼量大量減少(當(dāng)然這個(gè)例子不能夠證明)。下面看看是如何改進(jìn)的吧:
???? 我們把所有RadioButton控件的CheckedChanged事件用同一個(gè)事件替換。 如下圖所示,
代碼
private void RadioBtn_CheckedChanged(object sender, EventArgs e)
??????? {
if (!((RadioButton)sender).Checked) return;
string filterValue = string.Empty;
switch (((RadioButton)sender).Tag.ToString())
??????????? {
case "ALL":
??????????????????? filterValue = "ALL";
break;
case "Audit":
??????????????????? filterValue = "Audit";
break;
case "NotAudit":
??????????????????? filterValue = "NotAudit";
break;
case "Bill":
??????????????????? filterValue = "Bill";
break;
case "UnBill":
??????????????????? filterValue = "UnBill";
break;
??????????? }
this.gvData.DataSource = GetDataSource(filterValue);
??????? }
這樣處理那么就可以共用許多相同的代碼(這個(gè)簡(jiǎn)單的例子沒(méi)有體現(xiàn))。讓代碼界面簡(jiǎn)明清晰不少!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
