Return 到 MainForm(如果未设置条件)

Return to MainForm if a condition is not set

我正在用 DevExpress 编写程序时遇到了一个问题。我想要一个图块来显示是否设置了条件,在这种情况下输入一个特定值。如果用户输入它,他们将转到他们想去的window。否则就得回到主窗体。

我遇到的问题是在未设置条件的情况下让程序转到主窗体。每当它尝试这样做时,程序就会崩溃。

你能帮帮我吗?谢谢!

Private Sub windowsUIView1_QueryControl(sender As Object, e As QueryControlEventArgs) Handles windowsUIView1.QueryControl
    ....
    ElseIf e.Document Is Document9 Then
        Dim cuentaInicial = InputBox("Por favor introduzca la cuenta inicial del día", "Inicial")

        If cuentaInicial = "" Then
            MsgBox("Por favor introduzca un valor inicial", vbCritical, "Error")
            Me.Refresh()' <-- Problem here
            Exit Sub
        End If

        Try
            Dim inicial As Double = Double.Parse(cuentaInicial)
            e.Control = New Caja
        Catch ex As Exception
            MsgBox(cuentaInicial & ": No es el formato correcto. Favor de verificar", vbCritical, "Error")
            Me.Refresh() '<-- problem here
        End Try
    End If
End Sub

如果我的理解正确,您希望在单击图块时显示一个对话框。如果是这样,我建议您创建处理 WindowsUIView.TileClick 事件而不是 WindowsUIView.QueryControl 事件(在文档已显示时引发)。

在 WindowsUIView.TileClick 事件处理程序中,您可以通过在事件参数级别设置 Handled 属性 来检查是否可以导航到相应的文档:

Sub WindowsUIView1_TileClick(sender As Object, e As DevExpress.XtraBars.Docking2010.Views.WindowsUI.TileClickEventArgs) Handles WindowsUIView1.TileClick
    ...
    If e.Document Is Document9 Then
        Dim cuentaInicial = InputBox("Por favor introduzca la cuenta inicial del día", "Inicial")
        If cuentaInicial = "" Then
            MsgBox("Por favor introduzca un valor inicial", vbCritical, "Error")
            e.Handled = True ' !!!do not naviate into the document
            Exit Sub
        End If
    ...
    End If
End Sub