[C# For AP]找出控制項的繫結(DataBindings)

摘要:找出控制項的繫結(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來存放名稱的方法來克服我的問題,
但我想他們之間有關聯,
沒理由找不到吧…
 

 http://www.blueshop.com.tw/board/show.asp?subcde=BRD200910160912462EK&fumcde=FUM20050124192253INM&rplcnt=6

 


聰明人會抓住每一次機會,更聰明的人會不斷創造新機會。
每一秒都有千萬種可能,包括奇蹟!

技術永遠不是問題!

座右銘:有電腦的地方,就找得到我!!