我正在创建一个Outlook VSTO,允许用户在新约会表单的其他表单区域中输入信息。 发送预约时,我想抓住发送'发送'事件并对用户提供的数据执行一些检查。当此数据正常时,可以发送约会,否则必须取消发送操作。
我的代码是这样的:
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
如何将事件参数传递给我的SendAppt函数,以便我可以取消例程并阻止会议发送?
答案 0 :(得分:0)
约会本身永远不会发送 - Outlook会创建一个全新的MeetingItem
对象并发送它。您需要使用Application.ItemSend
事件并检查Item参数是否指向MeetingItem
对象。然后,您可以使用MeetingItem.GetAssociatedAppointment
检查它对应的约会。
答案 1 :(得分:0)
嗯,答案很简单,解决方案是这样的:
Private sub SendAppt (ByRef Cancel as Boolean)
If [some test] = False Then
Cancel = True
End If
End Sub
这将取消发送例程并保持会议项目的发送。