我的问题与一个自6个月以来一直在生产中运行的应用程序有关。但是上周,一个用户向我报告了这一点:
首先,此应用程序是对Outlook的补充,允许用户通过功能区中的新选项卡创建,编辑和删除票证。
当该用户单击按钮(创建)时,将出现一个窗口。在我的代码中,此窗口在两个地方使用,一个用于创建票证,另一个用于编辑票证。当用户想要编辑故障单时,将出现该窗口,而不会出现问题。但是只是为了创造,他不会出现。
我将这样的窗口称为创建窗口:
Dim oForm1 As Create_form
oForm1 = New Create_form(Nothing)
oForm1.Show()
并像这样进行编辑:
Dim oForm1 As Create_form
oForm1 = New Create_form(ticket)
oForm1.Show()
这是构造函数:
Public Sub New(ticket As Ticket)
InitializeComponent()
MaximizeBox = False
actualTicket = ticket
Init_List()
Init_Fields()
End Sub
我一直在互联网上寻找解决方案,但似乎我是唯一遇到此问题的人。该代码对该人有效,直到上周没有任何更改。 我考虑过的一种可能性是Microsoft可再发行版和Outlook版本(在Outlook 2016上开发和测试,在Outlook 2013上使用...)。
有什么想法吗?
感谢您的帮助!
Ps:请原谅我的英语水平高于平均水平
答案 0 :(得分:1)
首先,确保您的加载项已启用并在Outlook中运行。
Microsoft Office应用程序可以禁用行为异常的VSTO加载项。如果应用程序未加载VSTO加载项,则该应用程序可能已硬禁用或软禁用了VSTO加载项。
当VSTO加载项导致应用程序意外关闭时,可能会发生硬禁用。如果在VSTO加载项中的Startup
事件处理程序执行时停止调试器,则它也可能在开发计算机上发生。
当VSTO加载项产生不会导致应用程序意外关闭的错误时,可能会发生软件禁用。例如,如果在启动事件处理程序执行期间引发未处理的异常,则应用程序可能会软禁用VSTO加载项。
当您重新启用软禁用的VSTO加载项时,应用程序将立即尝试加载VSTO加载项。如果最初导致应用程序软禁用VSTO加载项的问题尚未解决,则应用程序将再次软禁用VSTO加载项。在How to: Re-enable a VSTO Add-in that has been disabled文章中了解有关此内容的更多信息。
该窗体很可能显示在Outlook窗口的后面。要在Outlook窗口顶部显示表单,您需要指定父窗口句柄。在基于.net的应用程序或加载项中,通常使用Windows窗体类显示一个窗口。 Show
类的ShowDialog
和System.Windows.Forms.Form
方法接受IWin32Window
接口的实例,该接口代表父窗口句柄。有关更多信息,请参见How to set the Window.Owner to Outlook window。
答案 1 :(得分:0)
最后,我找到了解决方案,创建一张票证,我在使用具有特定功能的系统日期。但是,有问题的用户会更改Windows配置中的默认设置。因此,由于存在非托管异常(软件期望法语日期为英文日期),因此无法显示该表格。