vous enregistrez au flux, en laissant le « curseur » positionné à la fin ... puis donner au navigateur, que je soupçonne lire à partir de l'emplacement actuel. Essayez d'ajouter:
stream.Position = 0;
juste avant la dernière ligne.
EDIT: D'accord, vous dites que ça ne marche pas ... voici un programme court mais complet qui fonctionne pour moi. Essayez et voir si cela fonctionne pour vous - et si elle le fait, voyez si vous pouvez travailler la différence entre votre code et ceci:
using System;
using System.Drawing;
using System.IO;
using System.Text;
using System.Windows.Forms;
class Test
{
[STAThread]
static void Main()
{
Form form = new Form();
WebBrowser browser = new WebBrowser();
browser.Dock = DockStyle.Fill;
form.Controls.Add(browser);
form.Load += delegate { SetDocumentStream(browser); };
Application.Run(form);
}
static void SetDocumentStream(WebBrowser browser)
{
string text = "<html><head><title>Stuff</title></head>" +
"<body><h1>Hello</h1></body></html>";
byte[] bytes = Encoding.UTF8.GetBytes(text);
MemoryStream ms = new MemoryStream();
ms.Write(bytes, 0, bytes.Length);
ms.Position = 0;
browser.DocumentStream = ms;
}
}
Ne fonctionne toujours pas! – gremo
@Gremo: Voir mes modifications. –
Ok !!! Travailler maintenant ... le seul problème que j'ai à résoudre est que le contrôle webbroser est vide lors de la définition de sa propriété de source de données à un flux de mémoire xml. Le flux contient en fait des données (je peux lire xml par un clic droit -> afficher la source dans le contrôle webbrowser). Peut-être que je dois mettre tag, mais je cherchais une meilleure solution ... – gremo