验证checkListBox?

时间:2014-03-06 13:58:22

标签: vb.net winforms

我有两个forms(1和2)。我一直在与一些代码进行斗争,这些代码会阻止用户选择checkedListBox中未添加到上一个表单ListBox2form1}中的项目。

我的代码有点奇怪,因为即使该项目已从listbox2添加到form1,它也会继续显示msgBox。我需要msgBox仅显示那些未添加到listbox2,form1的项目。

这就是我所拥有的:

Public Class Form1
    Dim ActSubject As Boolean
    Public Function ActivateSubject() As String
        Return ActSubject
    End Function

    Private Sub ListBox2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox2.TextChanged
        Dim x As New Items
        x.AvailableItems = ListBox2.Items.ToString
        For Each x In ListBox2.Items
            If ListBox2.Items.Contains(x) Then
               ActSubject = True
            Else
               ActSubject = False
            End If
        Next
    End Sub
End Class

Public Class Form2
    Dim HaveActSubject As Boolean = Form1.ActivateSubject
    Private Sub CheckedListBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckedListBox1.SelectedValueChanged
       If HaveActSubject = False Then
            MsgBox("Sorry! Subject should be activated six month before registration.")
       End If
       Return
    End Sub
 End Class

1 个答案:

答案 0 :(得分:0)


Public Class Form1
    Public Function ActivateSubject(itm as string) As String
        Return ListBox2.Items.Contains(itm)
    End Function
End Class

Public Class Form2
    Dim HaveActSubject As Boolean = Form1.ActivateSubject
    Private Sub CheckedListBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckedListBox1.SelectedValueChanged
       If Form1.ActivateSubject(CheckedListBox1.selectedValue) = False Then
            MsgBox("Sorry! Subject should be activated six month before registration.")
       End If
       Return
    End Sub
 End Class