表格隐藏不起作用

时间:2015-02-20 09:43:13

标签: vb.net winforms

奇怪的是,这个表单是从另一个表单打开的,但如果缺少用户输入,我希望表单关闭并返回初始表单。这不会发生,为什么?

Try
        Dim din As Int32 = (Form1.ComboBox1.SelectedValue)

        Dim dt As String = Form1.Label1.Text
        Dim dt2 As String = Form1.Label2.Text
        If din = Nothing Or dt = Nothing Or dt2 = Nothing Then
            MessageBox.Show("Please Select a Staff and Date Range", "Error!!!", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Me.Hide()
            Form1.Show()

        Else
            ' MsgBox(din & "/" & dt & "/" & dt2)
            DataGridView1.DataSource = getTable(din, DateTime.Parse(dt), DateTime.Parse(dt2))
            DataGridView1.AutoResizeColumns()
            Me.Text = "Selected Staff: " & CStr(Form1.ComboBox1.Text)
        End If
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

2 个答案:

答案 0 :(得分:2)

您使用Text

Labels属性
Dim din As Int32 = (Form1.ComboBox1.SelectedValue)
Dim dt As String = Form1.Label1.Text
Dim dt2 As String = Form1.Label2.Text
If din = Nothing Or dt = Nothing Or dt2 = Nothing Then

但它们永远不会是Nothing。如果您尝试将Nothing设置为Text的{​​{1}}属性,则会使用空字符串。我认为这是你的主要问题。

此外,您将Control属性转换为SelectedValue并将其检查为Integer。请注意,如果Nothingtrue,则为SelectedValue,因为它是0的默认值。

您应该使用调试器并逐步执行代码以解决此类问题。

答案 1 :(得分:0)

谢谢大家,我终于想通了我最好检查原始表单中的用户选择,而不是检查调用表单中的空值。

感谢您的所有投入。感谢。