如果未设置条件,则返回MainForm

时间:2016-06-15 16:51:37

标签: vb.net forms devexpress controls

我正在DevExpress中编写一个程序,我偶然发现了一个问题。我想要一个磁贴显示是否设置了条件,在这种情况下输入一个特定的值。如果用户输入它们,他们将转到他们想要去的窗口。否则它将不得不回到主表格。

我遇到的问题是如果未设置条件,程序将转到主窗体。每当它试图这样做时,程序就会崩溃。

你能帮帮我吗?谢谢!

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

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望在单击图块时显示对话框。如果是这样,我建议你创建句柄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