看板 C_Sharp 關於我們 聯絡資訊
List<class> class 由外面 UI 所控制 假設外面 UI 改了一下 class 要如何知道變更的 class 是在 List 哪一個 address? 我只想到上一個狀態與目前狀態一一比較, 哪個不同就知道了 應該還有更聰明的作法吧...... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.152.36 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1549966001.A.996.html
ssccg: Event02/12 18:24
說清楚一點好了 大概架構類似下面 // class 裡面包 UI class UIs { public RadioButton rdo; // others...... } // 這邊建立 list List<UIs> ListUI = new List<UIs>(); private void creat() { for (int i = 0; i < 20; i++) { UIs UI = new UIs(); UI.rdo.CheckedChanged += changedCheck; ListUI.Add(new UIs()); } } //當 class 裡面的 UI受到使用者改變時, 傳到裡面的 RadioButton都長得一樣..... //根本無法得知原本屬於list哪個位置, private void changedCheck(object sender, EventArgs e) { RadioButton rdo = (RadioButton)sender; } ※ 編輯: abc95007 (220.134.105.199), 02/12/2019 23:22:47
CloudyWing: listUI放field,用IndexOf()?02/12 23:47
forever84721: 每個RB的tag屬性先放可辨識的東西 之後就可以抓了02/13 08:17
testPtt: 猜你要的是arraylist02/13 14:09
最後是 add 時候,UIs.rdo.name 順便依序改個名字,sender 抓出來時就可以辨識了 ※ 編輯: abc95007 (180.217.138.101), 02/13/2019 16:26:06
Litfal: 把class instance或index直接丟到控制項的Tag屬性最簡單 02/14 18:13
disabledman: tag 屬性真的是無敵,要善用之 02/20 09:19
sd016808: 以你的需求,善用匿名函式 把Checkchanged放在For裡面就 03/10 22:46
sd016808: 可以拿到當初的index了 03/10 22:46
sd016808: 常常在下層的結構不想紀錄上層結構的對應關係時,我都會 03/10 22:47
sd016808: 用這種方式去處理 03/10 22:47