在vfp中,控件的每個(gè)屬性都有access和assign方法,即在屬性的讀取和賦值過(guò)程中嵌入代碼。如屬性backstyle建立access方法(方法名為backstyle_access),此方法會(huì )在讀取backstyle屬性時(shí)(如?backstyle時(shí))執行。
grid控件的列column默認包含textbox控件,可以替換為其他控件(如lable,image或自定義class)。然而在列數據綁定時(shí),官方的綁定方法只有controlsource,它只能將字段內容賦值于textbox的value屬性中,如果列包含的不是textbox控件,如label, image,這些列內容也無(wú)法和字段綁定起來(lái)。
直到有一天,有人發(fā)現了backstyle_access的妙用,既只要在列所包含的控件中建立backstyle_access方法,grid中的單元顯示包括動(dòng)態(tài)顯示(如記錄上下移動(dòng),resize事件等),都會(huì )執行backstyle_access方法。所以只要在backstyle_access方法加入控件的賦值語(yǔ)句,即可輕松完成列內容和字段的綁定,此方法也可輕松模擬各種列動(dòng)態(tài)dynamicXXX屬性。
其他屬性的access方法(如backcolor_access等)都不具備此功能,惟獨backstyle_access有此特異功能,所以真的要感謝發(fā)現之人。
有了這個(gè)方法,grid就不再是個(gè)古板的表格,剩下的就靠你的想象力吧。
如圖: