gpt4 book ai didi

c# - 新电子邮件锁定 outlook,强制电子邮件窗口为 topMost

转载 作者:太空狗 更新时间:2023-10-29 22:33:34 25 4
gpt4 key购买 nike

我正在使用以下代码从 DataGridView 读取电子邮件地址,然后创建 Outlook 电子邮件。这非常有效,除了新电子邮件被设置为 topMost 和/或作为对话框窗口打开,这意味着当新电子邮件窗口打开时我无法在 Outlook 中单击或执行任何其他操作。如果我打开新电子邮件并尝试在收件箱中搜索或查找某些内容,这就会出现问题。在我关闭或发送电子邮件之前,我的应用程序也不会响应(被锁定)。

有没有一种方法可以创建新电子邮件并仍然允许常规功能?如果我从 Outlook 本身单击新电子邮件按钮,我可以打开任意数量的电子邮件,使用搜索等。

this.TopMost = false 行用于隐藏我的 WinForms 应用程序并在前面显示新的电子邮件窗口。

try
{

string emailString = resultsGrid[resultsGrid.Columns["Email"].Index, resultsGrid.SelectedCells[resultsGrid.Columns["Email"].Index].RowIndex].Value.ToString();

if(emailString.Contains("mailto:"))
{
emailString = emailString.Replace("mailto:", "");
}

this.TopMost = false;

// Create the Outlook application by using inline initialization.
Outlook.Application oApp = new Outlook.Application();

//Create the new message by using the simplest approach.
Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
oMsg.Subject = "";
oMsg.To = emailString;
oMsg.Body = "";
oMsg.Display(true);


oMsg = null;
oApp = null;
}
catch (Exception ex)
{
MessageBox.Show(string.Format("An error occurred: {0}", ex.Message));
}

同样奇怪的是,如果我在电子邮件中写了一些东西并将其关闭,我可以保存它。如果我这样做,当我打开备份的电子邮件时,它会返回到锁定状态。我开始认为这与电子邮件的创建方式有关,因此应用了一些设置或属性并与之一起保存。

最佳答案

尝试替换这一行:

oMsg.Display(true);

...与:

oMsg.Display(false);

根据 MailItem.Display文档中,参数名称为 Modal,应指定为:

True to make the window modal. The default value is False.

关于c# - 新电子邮件锁定 outlook,强制电子邮件窗口为 topMost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10759738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com