首页 新闻 会员 周边

Webbrowser中显示MHT文件???

0
悬赏园豆:10 [已关闭问题] 关闭于 2012-07-19 09:02

Webbrowser中显示MHT文件???

 

万分感谢

JYun的主页 JYun | 初学一级 | 园豆:194
提问于:2012-07-18 17:54
< >
分享
所有回答(2)
0

好像用WebBrowser无法实现,这里有一个其他方法 —— Load MHT and Send as Email

dudu | 园豆:30994 (高人七级) | 2012-07-18 18:15

dudu亲自来回答这个问题,看样子dudu对博客园的类StockOverfolow提问模式投入了很多精力了,虽然您的回答对我没有太大帮助,但是我还是解决了这个问题,虽然不是很优雅,不过还是一个解决方案,总的思想是把MHT文件存成临时文件,用WEBBROWSER的Navigate方法打开,代码如下:

//从程序集中读取资源文件

Assembly asmm = Assembly.GetCallingAssembly();

Assembly asm = Assembly.ReflectionOnlyLoadFrom(AddInfo.HTMLAssembly);
Stream str=asm.GetManifestResourceStream(AddInfo.HTMLNavigationFile);

if (str == null)
return false;

//保存成临时文件

string vFilePath=AppDomain.CurrentDomain.BaseDirectory + "Temp";
string vFileName =vFilePath + "\\index.mht";//我资源文件里面的MHT文件

if (Directory.Exists(vFilePath) == false)
Directory.CreateDirectory(vFilePath);

if (File.Exists(vFileName))
File.Delete(vFileName);

StreamReader sr = new StreamReader(str);
StreamWriter sw = new StreamWriter(vFileName);

sw.Write(sr.ReadToEnd());
sw.Flush();
sw.Close();
sr.Close();

//webbrowser加载

wbNavigation.Navigate("file://"+vFileName);
while (wbNavigation.ReadyState != WebBrowserReadyState.Complete)
{
     Application.DoEvents();
}

支持(1) 反对(0) JYun | 园豆:194 (初学一级) | 2012-07-19 08:59
0

此问题,我已自己解决

JYun | 园豆:194 (初学一级) | 2012-07-19 09:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册