I put a WebBrowser control on my form and use it to load XML files. Here is the code:
OpenFileDialog FileDialog = new OpenFileDialog();
FileDialog.Title = "Open XML Document";
FileDialog.Filter = "XML file (*.xml)|*.xml";
if (FileDialog.ShowDialog() == DialogResult.OK)
{
WebBrowser1.Navigate(FileDialog.FileName);
WebBrowser1.Refresh();
}
I found that if I load the second XML, sometimes it will not refresh itself to show the new XML content. Instead, it still shows the previous one. I google the web to see if there is any other way to prevent the cache. Unfortunately, I found nothing. But
this post inspires me and so I create a workaround.
private void ReloadXml(string xmlPath)
{
panelShowXML.Controls.Clear(); //Clear controls first.
WebBrowser XMLBrowser = new WebBrowser();
panelShowXML.Controls.Add(XMLBrowser); //Add the WebBrowser control to the Panel.
XMLBrowser.Dock = DockStyle.Fill; //Fill the full Panel so that it looks like a WebBrowser control.
XMLBrowser.Navigate(xmlPath); //Load the XML file.
}
This way we can make sure the WebBrowser control always shows the latest content. It works fine for me, and I hope it works for you as well.
No comments:
Post a Comment