C# 从代码隐藏打开新的Outlook电子邮件-按钮对齐问题

C# 从代码隐藏打开新的Outlook电子邮件-按钮对齐问题,c#,.net,outlook,.net-4.5,outlook-2016,C#,.net,Outlook,.net 4.5,Outlook 2016,我有一个程序,它打开了新的outlook电子邮件窗口,其中预填充了收件人、抄送、标题和正文。代码如下所示 这几年来一直运行良好,最近它开始与一些用户产生一些问题,当新的电子邮件窗口打开时,发送字段似乎重叠(如下所示) 有人知道它为什么这样做吗?尝试重置导航窗格: outlook.exe /resetnavpane Ref:您的Outlook安装可能有缺陷,也可能是由于您的显示器设置和Outlook无法处理缩放设置造成的 如果从exe文件手动打开应用程序时看起来正常,则问题可能出在Office

我有一个程序,它打开了新的outlook电子邮件窗口,其中预填充了收件人、抄送、标题和正文。代码如下所示

这几年来一直运行良好,最近它开始与一些用户产生一些问题,当新的电子邮件窗口打开时,发送字段似乎重叠(如下所示)


有人知道它为什么这样做吗?

尝试重置导航窗格:

outlook.exe /resetnavpane

Ref:

您的Outlook安装可能有缺陷,也可能是由于您的显示器设置和Outlook无法处理缩放设置造成的

如果从
exe
文件手动打开应用程序时看起来正常,则问题可能出在
Office.Interop
API本身

过程。开始
进近 您可以通过命令行参数创建邮件,并运行流程本身:

System.Diagnostics.Process.Start(
   "C:\\Program Files (x86)\\Microsoft Office\\Office15\\OUTLOOK.EXE", 
    "/c ipm.note /m hello@example.com"));
其中,
Office15
将是您的Office安装版本。不幸的是,这种方法不允许您添加其他字段,如CC等

mailto:
approach 一个很好的替代方法是使用
mailto:
协议,因为它不需要用户安装Outlook,并且可以与任何电子邮件客户端一起使用,而且它仍然满足您的所有需求。要使用它,请构造
mailto:
URI,如下所示:

var mailtoUri = "mailto:someone@example.com?subject=This%20is%20the%20subject&cc=someone_else@example.com&body=This%20is%20the%20body"
然后启动该URI以打开用户默认分配的邮件客户端:

var startInfo = new ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.FileName = mailtoUri;
Process.Start(startInfo);

关于
mailto:
协议的更多细节是。

我认为这与代码无关。我猜您当前的outlook安装出了问题。修复office安装可能会有所帮助。如果问题发生在某些用户身上,则可能是一个问题。尝试删除并重新创建它们。另一个选择是。