Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将自定义win窗体挂接到Outlook检查器窗口c#_C#_Vsto_Outlook Addin - Fatal编程技术网

将自定义win窗体挂接到Outlook检查器窗口c#

将自定义win窗体挂接到Outlook检查器窗口c#,c#,vsto,outlook-addin,C#,Vsto,Outlook Addin,我的情况是,每当用户附加文件时,我需要在新邮件检查器窗口(compose/reply/forward/replyall)上弹出一个窗口,我需要弹出一个从现在开始的窗口,并且我能够显示我的表单。 现在我关心的是表格的位置。我设法在表单加载事件上编写手动调整代码,以将其定位到所需的位置。但这仅适用于用户以最大化模式打开“撰写邮件”窗口的情况。如果用户手动调整邮件窗口的大小或将其移动到某个位置,则表单会完全混乱,这一点很明显,因为它没有连接到父窗口 这是在表单初始化事件上编写的代码: Initiali

我的情况是,每当用户附加文件时,我需要在新邮件检查器窗口(compose/reply/forward/replyall)上弹出一个窗口,我需要弹出一个从现在开始的窗口,并且我能够显示我的表单。 现在我关心的是表格的位置。我设法在表单加载事件上编写手动调整代码,以将其定位到所需的位置。但这仅适用于用户以最大化模式打开“撰写邮件”窗口的情况。如果用户手动调整邮件窗口的大小或将其移动到某个位置,则表单会完全混乱,这一点很明显,因为它没有连接到父窗口

这是在表单初始化事件上编写的代码:

InitializeComponent();
            this.StartPosition = FormStartPosition.Manual;
            Outlook.Application oApplication = Globals.ThisAddIn.Application;
            Outlook.Inspector inspector = oApplication.ActiveInspector();
            try
            {
                //Get current inspector window

                Utility.Top = inspector.Top;
                Utility.Left = inspector.Left;
                Utility.Width = inspector.Width - 270;
                Utility.Height = inspector.Height / 2;
                this.Location = new Point(Utility.Width, Utility.Height - 110);

请帮忙

那么你实际上是想掩盖检查员?这听起来不是一个可行或特别漂亮的解决方案。为什么不在表单中添加您自己的表单区域?嗨,Dmitry,对不起,我的表单区域不好。我想要的是一个关于附件添加事件的弹出窗口,我想从用户那里得到添加附件的确认。我想把确认弹出窗口放在Inspector窗口中附件框的正前方,并想用它来钩住它,这样无论我的窗口大小都会随之移动。希望它能让需求更加清晰,请将检查器对象转换为IOleWindow并调用IOleWindow.GetWindow。然后,您可以为各种Windows PAI函数使用返回的HWND来查询检查器的大小和位置。