Carga no texto de memória no controle WebBrowser
Pergunta
no .NET WebBrowser controlar a única maneira que eu posso ver para carregar uma página a ele é para definir a propriedade URL. Mas eu gostaria de, em vez dar-lhe algum código HTML que eu já tenho na memória sem gravá-lo em um arquivo primeiro. Há alguma maneira de fazer isso? Ou existem quaisquer controles que vão fazer isso?
Solução
Você quer a propriedade DocumentText:
http://msdn.microsoft. com / en-us / library / system.windows.forms.webbrowser.documenttext.aspx
?
http://www.codeguru.com/forum/showpost .php p = 1691329 & postcount = 9 ?: Além disso, você deve fornecer algumas coisas:
-
Não defina DocumentText no construtor. Use Form_Load ou o seu próprio método. Se você definir DocumentText no construtor, você não será capaz de configurá-lo novamente em qualquer lugar no aplicativo. Certifique-se de verificar se o Form Designer não definiu que quer.
-
Você só pode definir DocumentText uma vez por chamada de método. Isso é estranho e muito provavelmente um erro, mas é verdade. Por exemplo: a criação DocumentText em um loop for só irá definir corretamente na primeira iteração do loop. No entanto, pode criar um pequeno método para definir DocumentText para o passado na corda, em seguida, chamar esse método em um loop for.
Outras dicas
Você usar WebBrowser.DeocumentText ( http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.documenttext.aspx ) ou WebBrowser.DocumentStream ( http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser .documentstream.aspx ) para alterar o HTML no documento atual. Talvez seja necessário navegar até sobre:. Em branco, se você não tiver um documento
Além disso, em geral, em qualquer lugar você pode usar um Stream, você pode usar MemoryStream para embrulhar os dados que você tem na memória.