Visual studio 2012 OpenModalWindow在屏幕第一次调用时抛出错误

Visual studio 2012 OpenModalWindow在屏幕第一次调用时抛出错误,visual-studio-2012,visual-studio-lightswitch,Visual Studio 2012,Visual Studio Lightswitch,我一直在构建一个IT票务/库存系统,程序已经完成,现在我正在为最终用户和我们学校的其他技术人员添加说明。因为我知道没有人会阅读说明书,所以我选择为每个屏幕制作说明,并将其放入模式窗口中,通过按下添加到屏幕命令部分的帮助按钮激活 这非常有效,因此我决定捕获KeyDown事件,并在按下F1时启动窗口。这就是事情变得有点奇怪的地方。 如果此特定屏幕的帮助窗口已至少打开一次,则按F1键将再次打开,不会出现任何问题。如果从未打开过,按F1键会导致错误“Control”HelpWindow不包含模式窗口。无

我一直在构建一个IT票务/库存系统,程序已经完成,现在我正在为最终用户和我们学校的其他技术人员添加说明。因为我知道没有人会阅读说明书,所以我选择为每个屏幕制作说明,并将其放入模式窗口中,通过按下添加到屏幕命令部分的帮助按钮激活

这非常有效,因此我决定捕获KeyDown事件,并在按下F1时启动窗口。这就是事情变得有点奇怪的地方。 如果此特定屏幕的帮助窗口已至少打开一次,则按F1键将再次打开,不会出现任何问题。如果从未打开过,按F1键会导致错误“Control”HelpWindow不包含模式窗口。无法使用OpenModalWindow/CloseModalWindow。” 关闭此错误消息后,F1将完全按照预期启动帮助窗口。很奇怪

背景资料: Visual Studio 2012 VB中的Lightswitch项目(我同时在VB和C中工作,为此项目掷硬币) 模式窗口是屏幕上不可见的组,名为“帮助窗口”;我使用
OpenModalWindow(“帮助窗口”)
打开它。HelpButton_执行代码中的代码行与KeyDown事件的事件处理程序中的代码行完全相同。 这与我在程序中的其他模式窗口中使用的方法相同,用于提交新票据、向库存添加设备等。 此问题仅在事件处理程序中发生,并且仅在第一次按下F1键时发生。在每个有帮助窗口的屏幕上,行为都是相同的


我用谷歌搜索这个问题的尝试没有结果。以前有人见过这种行为吗?

听起来确实很奇怪。我必须承认,我自己在模态窗口中没有看到过类似的情况

你没有提到你在哪里捕获了KeyDown键,所以很难对此发表评论

我有时看到的是,特别是在做一些有点“不同”的事情时,错误消息没有告诉您问题的实际原因

我将尝试使用dispatcher调用包装代码,以确保调用在正确的线程上执行,并尝试try/catch以查看是否可以找到错误的真正原因:

Private Sub YourClickHandler
    Try
        Me.Details.Dispatcher.BeginInvoke(
            Sub()
                OpenModalWindow("HelpWindow")
            End Sub)

    Catch ex As Exception
        Me.ShowMessageBox(ex.Message)
    End Try
End Sub

我希望这能帮助您,或者至少为您指明解决方案的方向。

您对错误的看法是正确的,这些错误通常不准确。:)在screen的created方法中,我使用AddHandler(“ScreenName”)。ControlAvailable,ScreenAvailable的地址偶然过早地按了enter键。在screen available方法中,我执行另一个AddHandler,这次是查找KeyDown事件。下周我回去工作时,我会去找调度员。谢谢