C#_Office_Word_Com加载项 将Form窗体设置为Word文档的子窗体
2021/9/4 1:05:52
本文主要是介绍C#_Office_Word_Com加载项 将Form窗体设置为Word文档的子窗体,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在word Com加载项的时候,新建的Form窗体成为Word窗口的子窗体。
using System; using Word = Microsoft.Office.Interop.Word; using System.Runtime.InteropServices; namespace TestWordAddin1 { public partial class ThisAddIn { /// <summary> /// 指定一个窗口的新父 /// </summary> /// <param name="hWndChild">子窗口的句柄</param> /// <param name="hWndNewParent">新父窗口的句柄</param> /// <returns></returns> [DllImport("user32.dll", EntryPoint = "SetParent")] public static extern int SetParent(IntPtr hWndChild, IntPtr hWndNewParent); /// <summary> /// 获得活动窗口的句柄 /// </summary> /// <returns></returns> [DllImport("user32.dll", EntryPoint = "GetActiveWindow")] public static extern int GetActiveWindow(); private void ThisAddIn_Startup(object sender, System.EventArgs e) { //将Form窗体设置为Word窗口的子窗体 SetNewParentWindow(); } private void ThisAddIn_Shutdown(object sender, System.EventArgs e) { } /// <summary> /// 将Form窗体设置为Word窗口的子窗体 /// </summary> private void SetNewParentWindow() { //获取当前Word文档对象 Word.Application wordapp = Globals.ThisAddIn.Application; //API函数返回Word窗口的句柄 (1)先获取Word窗体句柄 int WordHwnd = GetActiveWindow(); IntPtr wordHwnd = new IntPtr(WordHwnd);//转化 //实例化Form窗口 (2)再获取Form窗口的句柄 Form1 self = new Form1(); self.Show(); //通过API函数SetParent 设置父子窗体 //SetParent(子窗体的句柄,父窗体的句柄) SetParent(self.Handle, wordHwnd); } #region VSTO 生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要修改 /// 使用代码编辑器修改此方法的内容。 /// </summary> private void InternalStartup() { this.Startup += new System.EventHandler(ThisAddIn_Startup); this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown); } #endregion } }
运行效果图:
这篇关于C#_Office_Word_Com加载项 将Form窗体设置为Word文档的子窗体的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#