This seems like a silly oversite to me.

If I need to get to the form on a page, I have to iterate through the controls on the page object (possibly recursively).  But the page itself has a internal form reference!  Heck, the HtmlinputFile class uses it in it's OnPreRender method to ensure that the page encoding is a specific type.  I end up having to search out the form manually if I want to do the same type of thing (say, I'm manually rendering my html instead of using the HtmlControls objects.

I call shenanigans!

Just a minor nitpick, and chance of making the form property public in a later release?