将MS Word 嵌入C# Winform 中
来源:互联网 发布:辐射4配置要求优化 编辑:程序博客网 时间:2024/04/29 10:30
从今天开始要进入我的C#学习生涯了,~~~~(>_<)~~~~
我导师让我搞个小任务,哎!对于C#我什么也不懂,于是就上网search ,好像网上就这一个版本,不过我可是搞了半天才把问题解决掉,先说说整个过程是怎么样的吧!
在 Visual C# .NET 中新建一个 Windows 应用程序项目。默认情况下会创建 Form1。
在工具菜单上,单击自定义工具箱以打开自定义工具箱对话框。在 COM 组件选项卡上,添加一个对 Microsoft WebBrowser 的引用。单击确定,将 WebBrowser 控件添加到 Windows 窗体工具箱。WebBrowser 控件会显示出来,并且在工具箱中带有 Explorer(资源管理器)字样。
使用该工具箱向 Form1 添加一个 WebBrowser 控件、一个 OpenFileDialog 控件和一个 CommandButton 按钮。这就会向 Form1 类添加 AxWebBrowser1、OpenFileDialog1 和 Button1 成员变量。
在 Form1 上,双击 button1。这就会向 Form1 添加 Button1_Click 事件。
在 Form1 的代码窗口中,向列表添加以下命名空间:using System.Reflection;
如下所示在 Form1 类中定义一个私有成员:private Object oDocument;
在 Form1 类的 InitializeComponent 方法的末尾【注:可以在VS里直接双击这个方法进入定义的模块然后按下面做】,添加以下代码以处理 Form1_Load、Form1_Closed 和 axWebBrowser1_NavigateComplete2 事件:this.axWebBrowser1.NavigateComplete2 += new AxSHDocVw.DWebBrowserEvents2_NavigateComplete2EventHandler(this.axWebBrowser1_NavigateComplete2);
this.Load += new System.EventHandler(this.Form1_Load);
this.Closed += new System.EventHandler(this.Form1_Closed);
将下面的代码private void button1_Click(object sender, System.EventArgs e)
{
}
替换为: private void button1_Click(object sender, System.EventArgs e)
{
String strFileName;
//Find the Office document.
openFileDialog1.FileName = "";
openFileDialog1.ShowDialog();
strFileName = openFileDialog1.FileName;
//If the user does not cancel, open the document.
if(strFileName.Length != 0)
{
Object refmissing = System.Reflection.Missing.Value;
oDocument = null;
axWebBrowser1.Navigate(strFileName, ref refmissing , ref refmissing , ref refmissing , ref refmissing);
}
}
public void Form1_Load(object sender, System.EventArgs e)
{
button1.Text = "Browse";
openFileDialog1.Filter = "Office Documents(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt" ;
openFileDialog1.FilterIndex = 1;
}
public void Form1_Closed(object sender, System.EventArgs e)
{
oDocument = null;
}
public void axWebBrowser1_NavigateComplete2(object sender, AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event e)
{
//Note: You can use the reference to the document object to
// automate the document server.
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);
MessageBox.Show("File opened by: " + oName.ToString() );
}
按 F5 键运行该项目。单击浏览后,会出现打开对话框,您可以使用该对话框浏览到 Word 文档、Excel 工作表或 PowerPoint 演示文稿。选择任一文件,然后单击打开。文档在 WebBrowser 控件内打开,并出现一个显示有 Office 文档服务器名称的消息框。
我搞了好久才得到正确的结果,我错误的原因就在于开始时没有添加COM组件里的WebBrowser,把控件工具箱里的那个WebBrowser误认为直接放在窗体里就可以显示了,所以运行不出来,希望大家细心点O(∩_∩)O,另外就是对这个窗体的设计显示不是很满意,比如说如何设置这个控件随窗体的大小而自动改变大小;还有就是大家可以看下运行的结果,很不美观,word被打开时直接显示的是批注格式,你必须单击右键转到常用格式才可以方便使用,而且很多功能也被限制,如果有人能有好的解决方法,希望能交流一下
- 将MS Word 嵌入C# Winform 中
- C#操作Word(二)——将Word文档嵌入到WinForm窗体中
- C#操作Word(二)——将Word文档嵌入到WinForm窗体中
- C#实现在Winform中嵌入Word和Excel
- C#实现在Winform中嵌入Word和Excel
- MFC在应用程序中嵌入MS Word
- C# 将excel表格嵌入到Word中
- 将Word嵌入Delphi中
- 将Word嵌入Delphi中
- 将Word嵌入Delphi中
- 在WinForm中嵌入Word和Excel
- C# 如何在winform中嵌入Excel,内嵌Excel,word
- 将外部应用程序嵌入WinForm中
- 将外部应用程序嵌入WinForm中
- Edraw Office Viewer component教程(三):将MS Word、Excel、PowerPoint嵌入到WPF应用程序中
- 使用MFC在应用程序中嵌入MS Word
- C#将exe运行程序嵌入到自己的winform窗体中
- C#将exe运行程序嵌入到自己的winform窗体中
- Inside Oracle LRU latches
- 关于Oracle Stream的安装、配置和使用
- 新篇
- C++为什么成功?第二部分
- 项目管理从改变团队开始
- 将MS Word 嵌入C# Winform 中
- 关于Oracle的高水平线
- Hash知识介绍
- int 与String 的类型转换
- RemoveEventListener无法移除事件监听器的情况
- C51驱动数码管显示0~99
- Data Models(数据模型)
- 计算机,一种工具罢了。
- 丢了两年的博客,居然能找回来。