摘要:找出控制項的繫結(DataBindings)
//用遞回找出被繫結的控制項 private Control OperateControls(BindingSource bs, string columnName, Control control, Control ctrl) { foreach (Control c in control.Controls) { ctrl = OperateControls(bs, columnName, c, ctrl); if (c is TextBox) foreach (Binding b in c.DataBindings) if (b.DataSource == bs && b.BindingMemberInfo.BindingMember == columnName) return c; } return ctrl; }
需求簡介:
我想做動態的errorProvider
意思是指
當我發現某欄位不允許NULL時,
我會於該控制項後方出現「紅色驚嘆號」
因為我的控制項都會與DataGridView所用的BindingSource共用直接繫結
但我跑回圈時去判斷欄位是否允許null
不允許時,
就直接在控制項的「後方」呈現紅色驚嘆號
但我現在不管是由BindingSource尋找有繫結的控制項,
或是由控制項如TextBox尋找所繫結的BindingSource
都找不到…
當然我知道可以把Name取一樣或是用Tag來存放名稱的方法來克服我的問題,
但我想他們之間有關聯,
沒理由找不到吧…
聰明人會抓住每一次機會,更聰明的人會不斷創造新機會。
每一秒都有千萬種可能,包括奇蹟!
技術永遠不是問題!
座右銘:有電腦的地方,就找得到我!!