I think the best way to do it is to create a panel, inside we create some buttons with .png images as button_background.
When the user want to choose an icon, we set the pannels visibility = true, and when it click onto a btton, we have a sub...sub_buttonclicked for exemple, and we set the icon .png as icon into our object.
I will try a litle exemple when i will have some spare time....