Hi Sacho,
There's definitely value to understanding how DNN dynamically loads User Controls, but it may be more involved than you need for what you are trying to accomplish. ...For your immediate task, you may want to check out Open-SmartModule. It's a $28 module wrapper that lets you use non-DNN ASP.NET User Controls in DotNetNuke. Using that type of thing you could query Security Roles, and make a button Visible=False like any other ASP.NET program. ...This is all at a User Control level. Skins really don't contain logic to hide or show buttons and controls. Here's the link to them...
http://www.opendnn.com/DNNModules/O...fault.aspxFor more understanding on how DNN, and ASP.NET in general uses Dynamically generated User Controls, you might want to check out some of the following links.
http://odetocode.com/Blogs/scott/ar.../5365.aspxhttp://aspnet.4guysfromrolla.com/ar...402-1.aspxhttp://www.brettb.com/DynamicUserCo...ontrol.aspDynamic Controls are something that ASP.NET is generally bad at. A dynamically loaded control must be recreated using code each time a Page Loads or Posts back. It can only be recreated at a particular point in a particular order in the Page Life Cycle. There's a Control Tree order that must be maintained so Controls nested inside other controls don't get created before their parent controls do.
It's a complicated topic, and one can live a long and fulfilling life without knowing anything about it. But if you've got the itch, check out some of the links.