【问题标题】:VB.net - Form won't showVB.net - 表格不会显示
【发布时间】:2018-06-29 15:29:33
【问题描述】:

我的问题涉及一个应用程序,该应用程序目前在生产中运行了 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 : 请原谅我的英语水平高于平均水平

【问题讨论】:

  • 您是否能够使用这两个构造函数来调试代码?当您将 Nothing 传递给 Form 构造函数时,它被分配给 actualTicket 变量,因此代码有可能因为 Nothing 值而中断
  • 感谢您的回复!需要此分配,稍后在代码中,我进行检查以自动填充窗口中的某些字段,以防我们使用它来编辑工单。但是,如果没有任何内容,则该窗口用于创建票证。这段代码在六个月内运行良好,直到上周,就像我说的那样

标签: vb.net outlook-addin


【解决方案1】:

首先,确保您的加载项已启用并在 Outlook 中运行。


Microsoft Office 应用程序可以禁用行为异常的 VSTO 加载项。如果应用程序未加载您的 VSTO 外接程序,则该应用程序可能已硬禁用或软禁用您的 VSTO 外接程序。

当 VSTO 外接程序导致应用程序意外关闭时,可能会发生硬禁用。如果在 VSTO 外接程序中的 Startup 事件处理程序正在执行时停止调试器,它也可能发生在您的开发计算机上。

当 VSTO 外接程序产生不会导致应用程序意外关闭的错误时,可能会发生软禁用。例如,如果应用程序在 Startup 事件处理程序执行时抛出未处理的异常,则应用程序可能会软禁用 VSTO 外接程序。

当您重新启用软禁用的 VSTO 外接程序时,应用程序会立即尝试加载 VSTO 外接程序。如果最初导致应用程序软禁用 VSTO 插件的问题尚未修复,应用程序将再次软禁用 VSTO 插件。在How to: Re-enable a VSTO Add-in that has been disabled 文章中阅读更多相关信息。


表单很可能显示在 Outlook 窗口的后面。要在 Outlook 窗口顶部显示表单,您需要指定父窗口句柄。在基于 .net 的应用程序或加载项中,您通常使用 Windows 窗体类来显示一个窗口。 System.Windows.Forms.Form 类的ShowShowDialog 方法接受代表父窗口句柄的IWin32Window 接口的实例。有关更多信息,请参阅How to set the Window.Owner to Outlook window

【讨论】:

  • 感谢您的建议!我已经尝试了前两种解决方案,但无济于事。对于最后一个,我认为这不是我的问题的解决方案,因为当我尝试通过单击按钮打开表单时,窗口根本没有出现,我已经检查过它是否没有隐藏在 Outlook 后面,但是乍一看并非如此。所以我会尝试以防万一,但我不相信。无论如何,谢谢你
【解决方案2】:

最后我找到了解决方案,为了创建一张票,我使用具有特定功能的系统日期。但是,有问题的用户更改了 Windows 配置中的默认设置。因此,由于非托管异常(软件期望法语日期时为英语日期),无法显示表单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多