要求word文档在winform中显示,而不是启动microsoft word,且在显示word时,可显示word中的任何内容,包括表格和图片
解决方案 »
- Repeater绑定数据用到两个表的内容
- 发表了一篇关于连接池的博客,请大家给点建议给点帮助,谢谢!
- C# 非静态的字段、方法或属性 要求对象引用
- 新书推荐:《Visual C#2005从入门到精通》
- 关于图片上传到数据库中的问题
- 高手求救...ADO.NET方面的问题...
- 点击datagridview列头排列时出现三角的问题
- 写了一个window服务,想做一个servercontrol象sql2000那样在任务栏可以控制,那位兄弟知道的帮帮忙!!
- “System.NullReferenceException”类型的未经处理的异常出现在 log4net.dll 中
- 求一正则
- C#的随机函数怎么写的?
- 数据库插入的问题
在你需要完成此功能的某个事件中加入如下代码即可: System.Diagnostics.Process.Start(@"C:\Documents and Settings\Administrator\桌面\word.doc");//通过这句代码就可以打开任意你想打开的资源,这里我打开的是桌面上的我的word.doc文档,你可以将它更改为你需要打开的文档即可,注意路径一定要对,文件要带后缀名。
在你需要完成此功能的某个事件中加入如下代码即可: System.Diagnostics.Process.Start(@"C:\Documents and Settings\Administrator\桌面\word.doc");//通过这句代码就可以打开任意你想打开的资源,这里我打开的是桌面上的我的word.doc文档,你可以将它更改为你需要打开的文档即可,注意路径一定要对,文件要带后缀名。
不好意思再补充一点:
如果你需要在WinForm窗体中打开,则要用到WebBrowser控件,加入如下代码即可以在WebBrowser控件控件中显示word的任何内容,包括图片,代码如下: webBrowser1.Navigate(@"C:\Documents and Settings\Administrator\桌面\qq.doc");//我测试过的,可以在winform窗体中打开word文档及任何内容。谢谢!
楼上几位的话我都看了.
首先,说WebBrowser方式,我试了一下,存在以下几个问题解决不了:
1)用WebBrowser打开word时,会弹出IE下载时出现的打开保存对话框,这是很烦人的
2)似乎WebBrowser打开word时,对word的版本具有很强的依赖性,打开word2003时可以内嵌在WebBrowser中显示出word文档,但打开word2007时,却是直接打开了word而不是内嵌在WebBrowser中显示的数据其次,说http://www.codeproject.com/KB/miscctrl/winwordcontrol.aspx 这个上面的代码,我也看了一下
它能将word文档内嵌显示,但存在word的菜单和工具栏,而我不需要这些,只要能显示word的内容,用户在word中输入必要信息后再将该word文档另存到其他地方即可.再次,说用RichTextBox显示word文档内容的方式,我也试了,只能显示word中的文字,表格则无法显示最后,我想问问楼上有两位朋友提到了dsoframer,我没用过,不知该如何使用,能否给个下载或引用,并使用的例子代码呢?不胜感激
看完这几个网站就明白了。前了个是英文网站。第三个是微软帮助中心。第四个介绍win32API调用。
命令如下:
oDoc.ActiveWindow.Application.CommandBars["Menu Bar"].Enabled = false;
oDoc.Application.CommandBars["Standard"].Controls[1].Enabled = false;
oDoc.Application.CommandBars["Standard"].Controls[2].Enabled = false;
{
//调用打开文件对话框获取要打开的文件WORD文件,RTF文件,文本文件路径名称
OpenFileDialog opd = new OpenFileDialog();
opd.InitialDirectory = \"c:\\\\\";
opd.Filter = \"Word文档(*.doc)|*.doc|文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文档(*.*)|*.*\";
opd.FilterIndex = 1; if (opd.ShowDialog() == DialogResult.OK && opd.FileName.Length > 0)
{ //建立Word类的实例,缺点:不能正确读取表格,图片等等的显示
Word.ApplicationClass app = new Word.ApplicationClass();
Word.Document doc = null;
object missing = System.Reflection.Missing.Value; object FileName = opd.FileName;
object readOnly = false;
object isVisible = true;
object index = 0;
try
{
doc = app.Documents.Open(ref FileName, ref missing, ref readOnly,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref isVisible, ref missing,
ref missing, ref missing, ref missing); doc.ActiveWindow.Selection.WholeStory();
doc.ActiveWindow.Selection.Copy();
//从剪切板获取数据
IDataObject data=Clipboard.GetDataObject();
this.richTextBox1.Text=data.GetData(DataFormats.Text).ToString(); }
finally
{
if (doc != null)
{
doc.Close(ref missing, ref missing, ref missing);
doc = null;
} if (app != null)
{
app.Quit(ref missing, ref missing, ref missing);
app = null;[Page]
}
} } }
添加一个WebBrowser空间要~~
private void button1_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文档并显示
}
}