Outlook VSTO:取消约会项目的发送外事件
我正在创建一个Outlook VSTO,允许用户在新约会表单的附加表单区域中输入信息。 发送约会时,我希望捕获“发送”事件,并对用户提供的数据执行一些检查。当此数据正常时,可以发送约会,否则必须取消发送操作 我的代码如下:Outlook VSTO:取消约会项目的发送外事件,outlook,outlook-addin,Outlook,Outlook Addin,我正在创建一个Outlook VSTO,允许用户在新约会表单的附加表单区域中输入信息。 发送约会时,我希望捕获“发送”事件,并对用户提供的数据执行一些检查。当此数据正常时,可以发送约会,否则必须取消发送操作 我的代码如下: Dim apptItem as Outlook.AppointmentItem Private Sub Test_FormRegionShowing(ByVal sender As Object, ByVal e As System.EventArgs) Handles M
Dim apptItem as Outlook.AppointmentItem
Private Sub Test_FormRegionShowing(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing
apptItem = OutlookItem
AddHandler apptItem.Send, AddressOf sendAppt
End Sub
Private Sub sendAppt()
If some_test = False then
else
Cancel=True
End If
End Sub
Private sub SendAppt (ByRef Cancel as Boolean)
If [some test] = False Then
Cancel = True
End If
End Sub
如何将事件参数传递给SendAppt函数,以便取消例行程序并阻止发送会议?约会本身从未发送-Outlook创建一个全新的
MeetingItem
对象并发送它。您需要使用应用程序.ItemSend
事件并检查Item参数是否指向MeetingItem
对象。然后,您可以使用MeetingItem.GetAssociatedAppointment
检查它对应的约会 答案很简单,解决方法如下:
Dim apptItem as Outlook.AppointmentItem
Private Sub Test_FormRegionShowing(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing
apptItem = OutlookItem
AddHandler apptItem.Send, AddressOf sendAppt
End Sub
Private Sub sendAppt()
If some_test = False then
else
Cancel=True
End If
End Sub
Private sub SendAppt (ByRef Cancel as Boolean)
If [some test] = False Then
Cancel = True
End If
End Sub
这将取消发送例程,并阻止发送会议项目