<p>On the .Net WebBrowser control the only way I can see to load a page to it is to set the URL property.  But I would like to instead give it some HTML code that I already have in memory without writing it out to a file first.  Is there any way to do this?  Or are there any controls that will do this?</p>

You want the DocumentText Property:
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documenttext.aspx
?
from
http://www.codeguru.com/forum/showpost.php?p=1691329&postcount=9
:
Also you should provide a couple things:
Don't set DocumentText in the constructor. Use Form_Load or your own method.
If you set DocumentText in the constructor, you will not be able to set it again anywhere in the application. Be sure to check that the Form Designer hasn't set it either.
You can only set DocumentText once per method call. This is odd and most likely a bug, but it's true.
For example: setting DocumentText in a for-loop will only set properly on the first iteration of the loop.
You can however, create a small method to set DocumentText to the passed in string, then call this method in a for-loop.