在winform里面打开word文档

xiaobai105528 2011-06-08 05:35:08
在winform里面打开word文档,可是他没有嵌入到winform中,而是跳出来在另外一个窗口,怎么能够让他内嵌在winform中啊,以下是我写的代码

private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{

OpenFileDialog P_GetFile = new OpenFileDialog(); //创建打开文件对话框对象
DialogResult P_dr = P_GetFile.ShowDialog(); //显示打开文件对话框
if (P_dr == DialogResult.OK) //是否单击确定
{
webBrowser1.Navigate(P_GetFile.FileName); //打开Word文档并显示

}
}

我希望他能内嵌在webBrowser1控件中
...全文
1272 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
whr214120886 2011-09-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 caolilong11 的回复:]
楼主幸运了,我前一段时间也做过这个功能。也花了我不少时间才搞定。下面是代码
这段代码可写在按钮单击事件里面。我用的是axWebBrowser控件,工具箱如果一般初始没有这个控件,你右键工具箱-->选择项-->com组件里面选择Microsoft Web Browser
String strFileName;
//Find the Office document.
openFile……
[/Quote]

你好啊 我试了你这方法 感觉那个axWebBrowser1.Navigate(strFileName, ref refmissing, ref refmissing, ref refmissing, ref refmissing);
代码和axWebBrowser1_NavigateComplete2这个事件里面的代码不相干啊

我现在用axWebBrowser控件显示word,会出现一个保存对话框 ,只有点击"打开"的时候,才能显示 ,怎么办 ?
quanyinchan 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 wangsm313 的回复:]
你看下这里,可以下载http://download.csdn.net/source/3000301,我原来用的在远程服务器上,没有办法弄出来。
[/Quote]

已经下好了。你上面写的那一段代码是写在哪儿的,是一起的么?
wangsm313 2011-06-09
  • 打赏
  • 举报
回复
你看下这里,可以下载http://download.csdn.net/source/3000301,我原来用的在远程服务器上,没有办法弄出来。
quanyinchan 2011-06-09
  • 打赏
  • 举报
回复
找了半天,没下载到Dsoframer 组件,有好心人有么,能发给我么,邮箱531388094@qq.com
wangsm313 2011-06-09
  • 打赏
  • 举报
回复
你到网站上找个Dsoframer 2.3.0,csdn里就有下载的。然后导入到你的项目中,在你要嵌入的窗体上把控件DSO Framer Control Object拖上去就行了,后台程序很简单

private void InitOfficeControl(string _sFilePath)
{
try
{
string sExt = System.IO.Path.GetExtension(_sFilePath).Replace(".", "");
String sOpenType = LoadOpenFileType(extension);
this.axFramer.Open(_sFilePath, false, sOpenType, "", "");
if (sOpenType.Equals("Word.Document"))
{
this.axFramer.ShowView(3); //3这个值好像是页面视图
}
}
catch
{
MessageBox.Show("無法開啟文件: " + _sFilePath);
this.Close();
}
}
private string LoadOpenFileType(string _sExten)
{
try
{
string sOpenType = String.Empty;
switch (_sExten.ToLower())
{
case "xls":
case "xlsx":
sOpenType = "Excel.Sheet";
break;
case "doc":
case "docx":
sOpenType = "Word.Document";
break;
case "ppt":
case "pptx":
sOpenType = "PowerPoint.Show";
break;
default:
sOpenType = "Word.Document";
break;
}
return sOpenType;

}
catch (Exception ex)
{
throw ex;
}
}
xiaobai105528 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 wangsm313 的回复:]
我当初写的时候axWebBrowser 显示word2003,2007结果就是不一样,所以才会找Dsoframer,这个可以对word,excel进行编辑工作,而且显示没有问题。
[/Quote]

你做好了么?可以给我个实例不,我QQ 531388094,谢了
wangsm313 2011-06-09
  • 打赏
  • 举报
回复
我当初写的时候axWebBrowser 显示word2003,2007结果就是不一样,所以才会找Dsoframer,这个可以对word,excel进行编辑工作,而且显示没有问题。
chencan0206 2011-06-09
  • 打赏
  • 举报
回复
做读取WORD文档,把里面的内容读取出来,加载到winform窗体上。
xiaobai105528 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wangsm313 的回复:]
axWebBrowser打开word 2003可以不用再跳出一个窗体,但是2007就不行了。
你可以尝试下Dsoframer这个控件,我以前就是用这个控件解决你那个问题的。
[/Quote]

难道word版本不一样就结果不一样么?
Dsoframer控件是不是跟richtextbox差不多啊
wangsm313 2011-06-09
  • 打赏
  • 举报
回复
axWebBrowser打开word 2003可以不用再跳出一个窗体,但是2007就不行了。
你可以尝试下Dsoframer这个控件,我以前就是用这个控件解决你那个问题的。
freemangood 2011-06-09
  • 打赏
  • 举报
回复
不管怎么说,顶起来!
newkakarott 2011-06-09
  • 打赏
  • 举报
回复
马克一下。 等下我也试一试
caolilong11 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xiaobai105528 的回复:]
引用 3 楼 caolilong11 的回复:
楼主幸运了,我前一段时间也做过这个功能。也花了我不少时间才搞定。下面是代码
这段代码可写在按钮单击事件里面。我用的是axWebBrowser控件,工具箱如果一般初始没有这个控件,你右键工具箱-->选择项-->com组件里面选择Microsoft Web Browser
String strFileName;
//Find the Office……
[/Quote]
不会吧,这个我都做过了(而且用户在用了),是在axWebBrowser控件内显示,楼主仔细检查一下,哪里弄错了。
xiaobai105528 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 caolilong11 的回复:]
楼主幸运了,我前一段时间也做过这个功能。也花了我不少时间才搞定。下面是代码
这段代码可写在按钮单击事件里面。我用的是axWebBrowser控件,工具箱如果一般初始没有这个控件,你右键工具箱-->选择项-->com组件里面选择Microsoft Web Browser
String strFileName;
//Find the Office document.
openFile……
[/Quote]

这个我试过,还是在winform窗体外显示打开的word文档,
tianya_unix 2011-06-09
  • 打赏
  • 举报
回复
vs2008里面是WebBrowser控件
但是这个控件打开office2007文档的话会有打开还是下载的提示
不知道有没有高手怎么解决的
caolilong11 2011-06-09
  • 打赏
  • 举报
回复
楼主幸运了,我前一段时间也做过这个功能。也花了我不少时间才搞定。下面是代码
这段代码可写在按钮单击事件里面。我用的是axWebBrowser控件,工具箱如果一般初始没有这个控件,你右键工具箱-->选择项-->com组件里面选择Microsoft Web Browser
String strFileName;
//Find the Office document.
openFileDialog1.FileName = "";
openFileDialog1.ShowDialog();
strFileName = openFileDialog1.FileName;

//If the user does not cancel, open the document.
//Document doc = new Document();
//doc.SaveAs();

if (strFileName.Length != 0)
{
Object refmissing = System.Reflection.Missing.Value;
oDocument = null;
axWebBrowser1.Navigate(strFileName, ref refmissing, ref refmissing, ref refmissing, ref refmissing);
}
//还要加一个该控件的事件
private Object oDocument;
private void axWebBrowser1_NavigateComplete2(object sender, DWebBrowserEvents2_NavigateComplete2Event e)
{
Object o = e.pDisp;
oDocument = o.GetType().InvokeMember("Document", BindingFlags.GetProperty, null, o, null);
Object oApplication = o.GetType().InvokeMember("Application", BindingFlags.GetProperty, null, oDocument, null);
Object oName = o.GetType().InvokeMember("Name", BindingFlags.GetProperty, null, oApplication, null);
}
wuzhanhui 2011-06-09
  • 打赏
  • 举报
回复
http://blog.csdn.net/lwghost/archive/2010/04/09/5467867.aspx
看看有没有帮助!
xiaobai105528 2011-06-09
  • 打赏
  • 举报
回复
顶一下啊啊 啊

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧