有時候我們在畫面上會安排許多相同類別的元件
例如
可能在製作某些功能時會用到條列式的排版 這樣免不了就會有一堆按鈕 或著 textBox之類的
最常見的就是你一些重複的功能 但是又要讓user可以做某種程度的分類
如下圖
上圖的功能是送出一份文件 這份文件是以簽呈的方式進行傳遞
簽呈的順位由textBox決定 數字越低 順位越優先
點textBox旁的選擇就會決定上面的單在勾選後是在哪個textBox中列出來 被選擇列會以黃褐色顯示 作為提示
其實最簡單的方式就是每個按鈕去產生事件
可是這樣實在是很呆 圖中有6欄 就又去產生6個選擇按鈕事件 負責換掉選擇列的顏色.沒有被選的顏色.把部門清單重新整理.
把成員清單重新整理…這樣類似度非常高的Code如果不用Function處理帶入的參數 就要呆呆的寫6次
或者說寫1次但是Copy5次 反正就是會在你的程式李出現6次
然後…清除按鈕又要再寫6次………
這不管是WebForm或是WinForm設計都會遇到
今天先來說怎麼在Web自訂Function然後取得觸發該Function的物件ID 就可以使用參數來處理 這樣的狀況了
上面的textBoxID 為 txtRec1~txtRec6
選擇按鈕 為 btnSelect1~btnSelect6
清除按鈕 為 btnClear1~btnClear6 當然按鈕要處理的就是互相對應編號的textBox
首先看怎麼取得觸發事件的物件ID
當然我們會把這一群選擇按鈕 指向同一個事件 , 然後把旁邊那一群取消按鈕 指向同一個事件
而在她們的事件裡就可以用以下的方法取得ID
以下為清除按鈕的範例
'取得按下的按鈕ID '如果要對取得的ID丟給其他事件進行其他處理的話 '呼叫清除事件 就可以把我們要處理的textBox物件丟進去 |
clearTxt的程式內容
Public Sub clearTxt(ByVal txtID As TextBox) |
依此類推 我們的選擇按鈕就可以依照同樣的方式去處理了
不過選擇要處理的事情比較多 Code比較常 就留待有興趣的網友自行研究吧