我有一个控件,我可以将邮件放在上面,工作正常,但我无法清除选择/项目。
例如:我拖放邮件 1 --> 邮件 1 在我的列表中 我从列表中删除邮件 1 返回 Outlook 并拖放邮件 2
邮件 2 出现在我的列表中,但邮件 1 也恢复了!我发现了很多关于Marshal.ReleaseComObject
但我想我没有以正确的方式做的帖子?
规格:VS2010,4.0 框架。Windows 7 操作系统,Outlook 2010
这是我的代码的一部分:
调用我的Save
方法:
ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then
Try
Dim SafeSaveMethod As New dlgCallSaveMails(AddressOf SaveMailsFromSelection)
Me.BeginInvoke(SafeSaveMethod, Me.FileData.Pad)
Save
方法:
Private Sub SaveMailsFromSelection(_path As String)
' File uit Outlook
Dim x As Integer
Dim xitmndx As Integer = 0
Dim DestFile As String
Dim oOutLook As New Outlook.Application
Dim oExplorer As Outlook.Explorer
Dim oSelection As Outlook.Selection
Dim strFile As String
oExplorer = oOutLook.ActiveExplorer
oSelection = oExplorer.Selection
Dim currentFolder As MAPIFolder = oExplorer.CurrentFolder
Dim folders As Folders = currentFolder.Folders
Try
For Each mitem As Object In oSelection
xitmndx += 1
Dim mi As Microsoft.Office.Interop.Outlook.MailItem = TryCast(mitem, Microsoft.Office.Interop.Outlook.MailItem)
mi.SaveAs(_path & "\" & String.Format("{0:yyyy-MM-dd_hh-mm-ss-tt}", mi.CreationTime) & "-" & CleanInput(mi.Subject) & ".msg", Outlook.OlSaveAsType.olMSG)
Marshal.ReleaseComObject(mi)
mi = Nothing
Next
Catch ex As System.Exception
WriteError2EventLog("Error picDropZone_DragDrop 4: " & ex.ToString)
MsgBox(Err.Description, MsgBoxStyle.Exclamation, "mycontrol")
Finally
Marshal.ReleaseComObject(oExplorer)
Marshal.ReleaseComObject(oSelection)
Marshal.ReleaseComObject(currentFolder)
Marshal.ReleaseComObject(folders)
Marshal.FinalReleaseComObject(oExplorer)
End Try
End Sub
我也尝试过oExplorer.ClearSelection()
,但从 count 属性可以看出,它根本不清楚